From b8d50582fb9c4c74a446172f284543fbcac1afa4 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Jan 30 2015 18:35:36 +0000 Subject: 5.0.0-0.6 --- diff --git a/.gitignore b/.gitignore index 8da89f4..1a413c1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /gcc-5.0.0-20150123.tar.bz2 +/gcc-5.0.0-20150130.tar.bz2 diff --git a/gcc.spec b/gcc.spec index a43a6e9..df34e41 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20150123 -%global SVNREV 220063 +%global DATE 20150130 +%global SVNREV 220295 %global gcc_version 5.0.0 # Note, gcc_release must be integer, if you want to add suffixes to # %{release}, append them after %{gcc_release} on Release: line. -%global gcc_release 0.5 +%global gcc_release 0.6 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 %global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64 @@ -198,8 +198,8 @@ Patch11: gcc5-no-add-needed.patch Patch12: gcc5-libgo-p224.patch Patch13: gcc5-aarch64-async-unw-tables.patch Patch14: gcc5-libsanitize-aarch64-va42.patch -Patch15: gcc5-ppc-jit.patch -Patch16: gcc5-pr64738.patch +Patch15: gcc5-pr61925.patch +Patch16: gcc5-pr64817.patch # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. @@ -749,8 +749,8 @@ package or when debugging this package. rm -f libgo/go/crypto/elliptic/p224{,_test}.go %patch13 -p0 -b .aarch64-async-unw-tables~ %patch14 -p0 -b .libsanitize-aarch64-va42~ -%patch15 -p0 -b .ppc-jit~ -%patch16 -p0 -b .pr64738~ +%patch15 -p0 -b .pr61925~ +%patch16 -p0 -b .pr64817~ %if 0%{?_enable_debug_packages} mkdir dwz-wrapper @@ -2936,5 +2936,27 @@ fi %doc rpm.doc/changelogs/libcc1/ChangeLog* %changelog +* Fri Jan 30 2015 Jakub Jelinek 5.0.0-0.6 +- update from the trunk + - PRs ada/64349, bootstrap/64612, bootstrap/64754, c++/49508, c++/58597, + c++/63889, c++/64521, c++/64717, c/64709, c/64766, c/64778, + fortran/62044, fortran/63861, fortran/64230, fortran/64771, go/63565, + go/64510, go/64595, go/64738, ipa/60871, ipa/64139, ipa/64282, + ipa/64730, ipa/64776, ipa/64801, jit/64257, jit/64708, jit/64780, + libffi/64779, libffi/64799, libffi/64855, libfortran/64770, + libgomp/64635, libstdc++/64368, libstdc++/64798, libstdc++/64828, + lto/64837, middle-end/64421, middle-end/64764, middle-end/64805, + middle-end/64809, other/63504, rtl-optimization/61058, target/15184, + target/29366, target/49263, target/51244, target/52933, target/53987, + target/54236, target/59533, target/64345, target/64580, target/64617, + target/64659, target/64761, target/64795, target/64806, + testsuite/64712, tree-optimization/56273, tree-optimization/59124, + tree-optimization/64277, tree-optimization/64718, + tree-optimization/64746, tree-optimization/64807, + tree-optimization/64829, tree-optimization/64844, + tree-optimization/64853, ubsan/64741 +- fix up #pragma GCC target handling on x86 (PR target/61925) +- fix up VTA compile time hog during expansion (PR debug/64817) + * Fri Jan 23 2015 Jakub Jelinek 5.0.0-0.5 - new package diff --git a/gcc5-ppc-jit.patch b/gcc5-ppc-jit.patch deleted file mode 100644 index 76fd609..0000000 --- a/gcc5-ppc-jit.patch +++ /dev/null @@ -1,22 +0,0 @@ -2015-01-19 David Malcolm - - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): - Support the JIT by using 0 as the language type. - ---- gcc/config/rs6000/rs6000.c -+++ gcc/config/rs6000/rs6000.c -@@ -25491,11 +25491,12 @@ rs6000_output_function_epilogue (FILE *file, - use language_string. - C is 0. Fortran is 1. Pascal is 2. Ada is 3. C++ is 9. - Java is 13. Objective-C is 14. Objective-C++ isn't assigned -- a number, so for now use 9. LTO and Go aren't assigned numbers -+ a number, so for now use 9. LTO, Go and JIT aren't assigned numbers - either, so for now use 0. */ - if (lang_GNU_C () - || ! strcmp (language_string, "GNU GIMPLE") -- || ! strcmp (language_string, "GNU Go")) -+ || ! strcmp (language_string, "GNU Go") -+ || ! strcmp (language_string, "libgccjit")) - i = 0; - else if (! strcmp (language_string, "GNU F77") - || ! strcmp (language_string, "GNU Fortran")) diff --git a/gcc5-pr61925.patch b/gcc5-pr61925.patch new file mode 100644 index 0000000..f8e6a20 --- /dev/null +++ b/gcc5-pr61925.patch @@ -0,0 +1,220 @@ +2015-01-28 Jakub Jelinek + + PR target/61925 + * config/i386/i386.c (ix86_reset_to_default_globals): Removed. + (ix86_reset_previous_fndecl): Restore it here, unconditionally. + (ix86_set_current_function): Rewritten. + (ix86_add_new_builtins): Temporarily clear current_target_pragma + when creating builtin fndecls. + + * gcc.target/i386/pr61925-1.c: New test. + * gcc.target/i386/pr61925-2.c: New test. + * gcc.target/i386/pr61925-3.c: New test. + +--- gcc/config/i386/i386.c.jj 2015-01-26 22:27:20.000000000 +0100 ++++ gcc/config/i386/i386.c 2015-01-28 14:41:03.008727087 +0100 +@@ -5076,35 +5076,20 @@ ix86_can_inline_p (tree caller, tree cal + /* Remember the last target of ix86_set_current_function. */ + static GTY(()) tree ix86_previous_fndecl; + +-/* Set target globals to default. */ ++/* Set targets globals to the default (or current #pragma GCC target ++ if active). Invalidate ix86_previous_fndecl cache. */ + +-static void +-ix86_reset_to_default_globals (void) +-{ +- tree old_tree = (ix86_previous_fndecl +- ? DECL_FUNCTION_SPECIFIC_TARGET (ix86_previous_fndecl) +- : NULL_TREE); +- +- if (old_tree) +- { +- tree new_tree = target_option_current_node; +- cl_target_option_restore (&global_options, +- TREE_TARGET_OPTION (new_tree)); +- if (TREE_TARGET_GLOBALS (new_tree)) +- restore_target_globals (TREE_TARGET_GLOBALS (new_tree)); +- else if (new_tree == target_option_default_node) +- restore_target_globals (&default_target_globals); +- else +- TREE_TARGET_GLOBALS (new_tree) +- = save_target_globals_default_opts (); +- } +-} +- +-/* Invalidate ix86_previous_fndecl cache. */ + void + ix86_reset_previous_fndecl (void) + { +- ix86_reset_to_default_globals (); ++ tree new_tree = target_option_current_node; ++ cl_target_option_restore (&global_options, TREE_TARGET_OPTION (new_tree)); ++ if (TREE_TARGET_GLOBALS (new_tree)) ++ restore_target_globals (TREE_TARGET_GLOBALS (new_tree)); ++ else if (new_tree == target_option_default_node) ++ restore_target_globals (&default_target_globals); ++ else ++ TREE_TARGET_GLOBALS (new_tree) = save_target_globals_default_opts (); + ix86_previous_fndecl = NULL_TREE; + } + +@@ -5117,34 +5102,39 @@ ix86_set_current_function (tree fndecl) + /* Only change the context if the function changes. This hook is called + several times in the course of compiling a function, and we don't want to + slow things down too much or call target_reinit when it isn't safe. */ +- if (fndecl && fndecl != ix86_previous_fndecl) +- { +- tree old_tree = (ix86_previous_fndecl +- ? DECL_FUNCTION_SPECIFIC_TARGET (ix86_previous_fndecl) +- : NULL_TREE); ++ if (fndecl == ix86_previous_fndecl) ++ return; + +- tree new_tree = (fndecl +- ? DECL_FUNCTION_SPECIFIC_TARGET (fndecl) +- : NULL_TREE); ++ tree old_tree; ++ if (ix86_previous_fndecl == NULL_TREE) ++ old_tree = target_option_current_node; ++ else if (DECL_FUNCTION_SPECIFIC_TARGET (ix86_previous_fndecl)) ++ old_tree = DECL_FUNCTION_SPECIFIC_TARGET (ix86_previous_fndecl); ++ else ++ old_tree = target_option_default_node; + +- if (old_tree == new_tree) +- ; ++ if (fndecl == NULL_TREE) ++ { ++ if (old_tree != target_option_current_node) ++ ix86_reset_previous_fndecl (); ++ return; ++ } + +- else if (new_tree && new_tree != target_option_default_node) +- { +- cl_target_option_restore (&global_options, +- TREE_TARGET_OPTION (new_tree)); +- if (TREE_TARGET_GLOBALS (new_tree)) +- restore_target_globals (TREE_TARGET_GLOBALS (new_tree)); +- else +- TREE_TARGET_GLOBALS (new_tree) +- = save_target_globals_default_opts (); +- } ++ tree new_tree = DECL_FUNCTION_SPECIFIC_TARGET (fndecl); ++ if (new_tree == NULL_TREE) ++ new_tree = target_option_default_node; + +- else if (old_tree && old_tree != target_option_default_node) +- ix86_reset_to_default_globals (); +- ix86_previous_fndecl = fndecl; ++ if (old_tree != new_tree) ++ { ++ cl_target_option_restore (&global_options, TREE_TARGET_OPTION (new_tree)); ++ if (TREE_TARGET_GLOBALS (new_tree)) ++ restore_target_globals (TREE_TARGET_GLOBALS (new_tree)); ++ else if (new_tree == target_option_default_node) ++ restore_target_globals (&default_target_globals); ++ else ++ TREE_TARGET_GLOBALS (new_tree) = save_target_globals_default_opts (); + } ++ ix86_previous_fndecl = fndecl; + } + + +@@ -30580,6 +30570,8 @@ static void + ix86_add_new_builtins (HOST_WIDE_INT isa) + { + int i; ++ tree saved_current_target_pragma = current_target_pragma; ++ current_target_pragma = NULL_TREE; + + for (i = 0; i < (int)IX86_BUILTIN_MAX; i++) + { +@@ -30606,6 +30598,8 @@ ix86_add_new_builtins (HOST_WIDE_INT isa + TREE_NOTHROW (decl) = 1; + } + } ++ ++ current_target_pragma = saved_current_target_pragma; + } + + /* Bits for builtin_description.flag. */ +--- gcc/testsuite/gcc.target/i386/pr61925-1.c.jj 2015-01-28 15:10:45.756833647 +0100 ++++ gcc/testsuite/gcc.target/i386/pr61925-1.c 2015-01-28 15:11:49.911722473 +0100 +@@ -0,0 +1,21 @@ ++/* PR target/61925 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -w" } */ ++/* { dg-additional-options "-march=i386 -mno-sse" { target ia32 } } */ ++ ++#pragma GCC push_options ++#pragma GCC target("sse") ++typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); ++typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__)); ++__m128i ++bar (__m128 __A) ++{ ++} ++ ++#pragma GCC pop_options ++ ++__attribute__ ((vector_size (16))) int ++foo (__attribute__ ((vector_size (16))) int a, __attribute__ ((vector_size (16))) int b) ++{ ++ return a + b; ++} +--- gcc/testsuite/gcc.target/i386/pr61925-2.c.jj 2015-01-28 15:10:48.651783506 +0100 ++++ gcc/testsuite/gcc.target/i386/pr61925-2.c 2015-01-28 15:11:55.432626851 +0100 +@@ -0,0 +1,21 @@ ++/* PR target/61925 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -w" } */ ++/* { dg-additional-options "-march=i386 -mno-sse" { target ia32 } } */ ++ ++#pragma GCC push_options ++#pragma GCC target("sse") ++typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); ++extern __inline __m128 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) ++foo (void) ++{ ++} ++ ++#pragma GCC target("sse2") ++#pragma GCC pop_options ++ ++__attribute__ ((vector_size (16))) int ++bar (__attribute__ ((vector_size (16))) int a, __attribute__ ((vector_size (16))) int b) ++{ ++ return a + b; ++} +--- gcc/testsuite/gcc.target/i386/pr61925-3.c.jj 2015-01-28 15:10:51.538733503 +0100 ++++ gcc/testsuite/gcc.target/i386/pr61925-3.c 2015-01-28 15:12:01.316524940 +0100 +@@ -0,0 +1,27 @@ ++/* PR target/61925 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -w" } */ ++/* { dg-additional-options "-march=i386 -mno-sse" { target ia32 } } */ ++ ++#pragma GCC push_options ++#pragma GCC target("sse") ++typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); ++ ++void ++foo (void) ++{ ++} ++ ++__attribute__((target ("avx"))) void ++bar (void) ++{ ++} ++ ++#pragma GCC target("sse2") ++#pragma GCC pop_options ++ ++__attribute__ ((vector_size (16))) int ++baz (__attribute__ ((vector_size (16))) int a, __attribute__ ((vector_size (16))) int b) ++{ ++ return a + b; ++} diff --git a/gcc5-pr64738.patch b/gcc5-pr64738.patch deleted file mode 100644 index cfb44cc..0000000 --- a/gcc5-pr64738.patch +++ /dev/null @@ -1,28 +0,0 @@ -2015-01-23 Jakub Jelinek - - PR go/64738 - * Makefile.am (AM_LDFLAGS): Remove -static-libgo flag. - * Makefile.in: Regenerated. - ---- gotools/Makefile.am 2015-01-23 09:42:05.747471685 +0100 -+++ gotools/Makefile.am 2015-01-23 21:04:36.970202637 +0100 -@@ -38,7 +38,7 @@ endif - GOCFLAGS = $(CFLAGS_FOR_TARGET) - GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS) - --AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs -static-libgo -+AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs - GOLINK = $(GOCOMPILER) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@ - - cmdsrcdir = $(srcdir)/../libgo/go/cmd ---- gotools/Makefile.in 2015-01-23 09:42:05.724472081 +0100 -+++ gotools/Makefile.in 2015-01-23 21:04:44.940065201 +0100 -@@ -230,7 +230,7 @@ LIBGODEP = $(libgodir)/libgo.la - # Use the compiler we just built. - @NATIVE_TRUE@GOCOMPILER = $(GOC_FOR_TARGET) - GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS) --AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs -static-libgo -+AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs - GOLINK = $(GOCOMPILER) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@ - cmdsrcdir = $(srcdir)/../libgo/go/cmd - go_cmd_go_files = \ diff --git a/gcc5-pr64817.patch b/gcc5-pr64817.patch new file mode 100644 index 0000000..b1e5b37 --- /dev/null +++ b/gcc5-pr64817.patch @@ -0,0 +1,182 @@ +2015-01-30 Jakub Jelinek + + PR debug/64817 + * cfgexpand.c (deep_ter_debug_map): New variable. + (avoid_deep_ter_for_debug): New function. + (expand_debug_expr): If TERed SSA_NAME is in + deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL + instead of trying to expand SSA_NAME's def stmt. + (expand_debug_locations): When expanding debug bind + of a DEBUG_EXPR_DECL to corresponding SSA_NAME, + temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's + value. + (pass_expand::execute): Call avoid_deep_ter_for_debug on + all debug bind stmts. Delete deep_ter_debug_map after + expand_debug_location if non-NULL and clear it. + + * gcc.dg/pr64817-1.c: New test. + * gcc.dg/pr64817-2.c: New test. + +--- gcc/cfgexpand.c.jj 2015-01-28 21:24:56.000000000 +0100 ++++ gcc/cfgexpand.c 2015-01-30 13:22:46.002579984 +0100 +@@ -3767,6 +3767,48 @@ convert_debug_memory_address (machine_mo + return x; + } + ++/* Map from SSA_NAMEs to corresponding DEBUG_EXPR_DECLs created ++ by avoid_deep_ter_for_debug. */ ++ ++hash_map *deep_ter_debug_map; ++ ++/* Split too deep TER chains for debug stmts using debug temporaries. */ ++ ++static void ++avoid_deep_ter_for_debug (gimple stmt, int depth) ++{ ++ use_operand_p use_p; ++ ssa_op_iter iter; ++ FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_USE) ++ { ++ tree use = USE_FROM_PTR (use_p); ++ if (TREE_CODE (use) != SSA_NAME || SSA_NAME_IS_DEFAULT_DEF (use)) ++ continue; ++ gimple g = get_gimple_for_ssa_name (use); ++ if (g == NULL) ++ continue; ++ if (depth > 6 && !stmt_ends_bb_p (g)) ++ { ++ if (deep_ter_debug_map == NULL) ++ deep_ter_debug_map = new hash_map; ++ ++ tree &vexpr = deep_ter_debug_map->get_or_insert (use); ++ if (vexpr != NULL) ++ continue; ++ vexpr = make_node (DEBUG_EXPR_DECL); ++ gimple def_temp = gimple_build_debug_bind (vexpr, use, g); ++ DECL_ARTIFICIAL (vexpr) = 1; ++ TREE_TYPE (vexpr) = TREE_TYPE (use); ++ DECL_MODE (vexpr) = TYPE_MODE (TREE_TYPE (use)); ++ gimple_stmt_iterator gsi = gsi_for_stmt (g); ++ gsi_insert_after (&gsi, def_temp, GSI_NEW_STMT); ++ avoid_deep_ter_for_debug (def_temp, 0); ++ } ++ else ++ avoid_deep_ter_for_debug (g, depth + 1); ++ } ++} ++ + /* Return an RTX equivalent to the value of the parameter DECL. */ + + static rtx +@@ -4654,7 +4696,16 @@ expand_debug_expr (tree exp) + gimple g = get_gimple_for_ssa_name (exp); + if (g) + { +- op0 = expand_debug_expr (gimple_assign_rhs_to_tree (g)); ++ tree t = NULL_TREE; ++ if (deep_ter_debug_map) ++ { ++ tree *slot = deep_ter_debug_map->get (exp); ++ if (slot) ++ t = *slot; ++ } ++ if (t == NULL_TREE) ++ t = gimple_assign_rhs_to_tree (g); ++ op0 = expand_debug_expr (t); + if (!op0) + return NULL; + } +@@ -4961,6 +5012,25 @@ expand_debug_locations (void) + if (INSN_VAR_LOCATION_STATUS (insn) + == VAR_INIT_STATUS_UNINITIALIZED) + val = expand_debug_source_expr (value); ++ /* The avoid_deep_ter_for_debug function inserts ++ debug bind stmts after SSA_NAME definition, with the ++ SSA_NAME as the whole bind location. Disable temporarily ++ expansion of that SSA_NAME into the DEBUG_EXPR_DECL ++ being defined in this DEBUG_INSN. */ ++ else if (deep_ter_debug_map && TREE_CODE (value) == SSA_NAME) ++ { ++ tree *slot = deep_ter_debug_map->get (value); ++ if (slot) ++ { ++ if (*slot == INSN_VAR_LOCATION_DECL (insn)) ++ *slot = NULL_TREE; ++ else ++ slot = NULL; ++ } ++ val = expand_debug_expr (value); ++ if (slot) ++ *slot = INSN_VAR_LOCATION_DECL (insn); ++ } + else + val = expand_debug_expr (value); + gcc_assert (last == get_last_insn ()); +@@ -5821,6 +5891,15 @@ pass_expand::execute (function *fun) + timevar_pop (TV_OUT_OF_SSA); + SA.partition_to_pseudo = XCNEWVEC (rtx, SA.map->num_partitions); + ++ if (MAY_HAVE_DEBUG_STMTS && flag_tree_ter) ++ { ++ gimple_stmt_iterator gsi; ++ FOR_EACH_BB_FN (bb, cfun) ++ for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) ++ if (gimple_debug_bind_p (gsi_stmt (gsi))) ++ avoid_deep_ter_for_debug (gsi_stmt (gsi), 0); ++ } ++ + /* Make sure all values used by the optimization passes have sane + defaults. */ + reg_renumber = 0; +@@ -6008,6 +6087,12 @@ pass_expand::execute (function *fun) + if (MAY_HAVE_DEBUG_INSNS) + expand_debug_locations (); + ++ if (deep_ter_debug_map) ++ { ++ delete deep_ter_debug_map; ++ deep_ter_debug_map = NULL; ++ } ++ + /* Free stuff we no longer need after GIMPLE optimizations. */ + free_dominance_info (CDI_DOMINATORS); + free_dominance_info (CDI_POST_DOMINATORS); +--- gcc/testsuite/gcc.dg/pr64817-1.c.jj 2015-01-30 13:33:05.061143850 +0100 ++++ gcc/testsuite/gcc.dg/pr64817-1.c 2015-01-30 13:32:33.000000000 +0100 +@@ -0,0 +1,20 @@ ++/* PR debug/64817 */ ++/* { dg-do compile } */ ++/* { dg-options "-O3 -g" } */ ++ ++int a, b, d; ++ ++void ++foo (void) ++{ ++ for (b = 0; b < 9; b++) ++ { ++ int e; ++ for (d = 0; d < 5; d++) ++ { ++ a &= 231; ++ a ^= 14; ++ } ++ e = (a ^= 1) < 0; ++ } ++} +--- gcc/testsuite/gcc.dg/pr64817-2.c.jj 2015-01-20 10:01:16.345964420 +0100 ++++ gcc/testsuite/gcc.dg/pr64817-2.c 2015-01-30 18:37:49.055911292 +0100 +@@ -0,0 +1,13 @@ ++/* PR debug/64817 */ ++/* { dg-do compile } */ ++/* { dg-options "-O3 -g" } */ ++ ++int a; ++ ++void ++foo (void) ++{ ++ int e; ++ a = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((a & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) & 231) ^ 14) ^ 1; ++ e = (a < 0); ++} diff --git a/sources b/sources index db77005..b488869 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -94860e75c4808cec7b783415064abee8 gcc-5.0.0-20150123.tar.bz2 +80ccb31c5fbade3579f4aa74758f4fd9 gcc-5.0.0-20150130.tar.bz2