[Bug target/61411] [NEON] ICE in reload_cse_simplify_operands, at postreload.c:411
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61411 --- Comment #3 from bin.cheng amker.cheng at gmail dot com --- Then I think it's a latent bug in LRA. It should consult back-end about legitimized address expressions.
[Bug tree-optimization/43934] LIM should handle PHI nodes
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43934 --- Comment #4 from chrbr at gcc dot gnu.org --- Author: chrbr Date: Fri Jun 6 07:21:02 2014 New Revision: 211302 URL: http://gcc.gnu.org/viewcvs?rev=211302root=gccview=rev Log: PR tree-optimization/43934 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant cost. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-8.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-loop-im.c
[Bug libstdc++/61425] std::regex ignores backslash when using basic or grep grammars
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61425 --- Comment #4 from Andreas Schwab sch...@linux-m68k.org --- \| is just undefined in BRE, so an implementation can do whatever it wants.
[Bug middle-end/56574] False possibly uninitialized variable warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56574 Eric Botcazou ebotcazou at gcc dot gnu.org changed: What|Removed |Added Keywords|wrong-code | CC||ebotcazou at gcc dot gnu.org --- Comment #8 from Eric Botcazou ebotcazou at gcc dot gnu.org --- ISO C99 6.5.13 says that 'value' is not evaluated when !flag is false. But clearly we are not considering the side-effect of using an uninitialized variable when deciding to output straight-line code sequences. But evaluating an uninitialized variable is not a side-effect, unless accessing the variable itself has a side-effect, so there is no wrong code here. Affected are at least gimple SSA if-combine and eventually fold and gimplification (I didn't check them). Ok, for this testcase it is fold that ends up producing a TRUTH_AND_EXPR. This analysis looks bogus to me.
[Bug target/61423] Incorrect conversion from unsigned int to floating point
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61423 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Keywords||wrong-code Target||i?86-*-* Status|UNCONFIRMED |NEW Last reconfirmed||2014-06-06 Component|c |target Ever confirmed|0 |1 --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org --- Confirmed. Works with -mfpmath=sse. Initial RTL looks ok to me: (insn 21 20 22 (set (reg:SI 99 [ stmp_sum_5.8 ]) (vec_select:SI (reg:V4SI 98 [ vect_sum_5.9 ]) (parallel [ (const_int 0 [0]) ]))) -1 (nil)) (insn 22 21 23 (parallel [ (set (reg:DF 97 [ t ]) (unsigned_float:DF (reg:SI 99 [ stmp_sum_5.8 ]))) (clobber (mem/c:DI (plus:SI (reg/f:SI 78 virtual-stack-vars) (const_int -8 [0xfff8])) [0 S8 A64])) (clobber (scratch:SI)) ]) t.c:18 -1 (nil)) (insn 23 22 24 (set (reg:DF 94 [ retval ]) (reg:DF 97 [ t ])) t.c:19 -1 (nil)) So it must be a bogus *floatunssidf2_1 pattern (insn 22 21 28 4 (parallel [ (set (reg:DF 8 st [orig:97 t ] [97]) (unsigned_float:DF (reg:SI 21 xmm0 [orig:99 stmp_sum_5.8 ] [99]))) (clobber (mem/c:DI (plus:SI (reg/f:SI 7 sp) (const_int 8 [0x8])) [0 S8 A64])) (clobber (scratch:SI)) ]) t.c:18 211 {*floatunssidf2_1} (nil)) split to (insn 39 38 40 4 (set (mem/c:DI (plus:SI (reg/f:SI 7 sp) (const_int 8 [0x8])) [0 S8 A64]) (reg:DI 21 xmm0 [orig:99 stmp_sum_5.8 ] [99])) t.c:18 89 {*movdi_internal} (nil)) (insn 40 39 28 4 (set (reg:DF 8 st [orig:97 t ] [97]) (float:DF (mem/c:DI (plus:SI (reg/f:SI 7 sp) (const_int 8 [0x8])) [0 S8 A64]))) t.c:18 206 {*floatdidf2_i387} (nil)) note the use of a DImode memory but the missing zero-extend of xmm0:DI.
[Bug debug/53927] wrong value for DW_AT_static_link
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53927 --- Comment #12 from Eric Botcazou ebotcazou at gcc dot gnu.org --- Author: ebotcazou Date: Fri Jun 6 08:13:24 2014 New Revision: 211308 URL: http://gcc.gnu.org/viewcvs?rev=211308root=gccview=rev Log: PR debug/53927 * function.c (instantiate_decls): Process the saved static chain. (expand_function_start): If not optimizing, save the static chain onto the stack. * tree-nested.c (convert_all_function_calls): Always create the static chain for nested functions if not optimizing. Modified: trunk/gcc/ChangeLog trunk/gcc/function.c trunk/gcc/tree-nested.c
[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320 --- Comment #31 from ro at CeBiTec dot Uni-Bielefeld.DE ro at CeBiTec dot Uni-Bielefeld.DE --- --- Comment #30 from Thomas Preud'homme thomas.preudhomme at arm dot com --- Can you run the test manually under gdb and tell me what is the value for the out variable in hex format? Sure: the -O0 test aborts at line 78, where out is (gdb) p/x out $11 = 0x44434241 (gdb) p (char[4])out $12 = DCBA Rainer
[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320 --- Comment #32 from Thomas Preud'homme thomas.preudhomme at arm dot com --- (In reply to r...@cebitec.uni-bielefeld.de from comment #31) --- Comment #30 from Thomas Preud'homme thomas.preudhomme at arm dot com --- Can you run the test manually under gdb and tell me what is the value for the out variable in hex format? Sure: the -O0 test aborts at line 78, where out is (gdb) p/x out $11 = 0x44434241 (gdb) p (char[4])out $12 = DCBA Rainer Are you sure the patch was applied to this test? Line 78 I have bfin.inval = (struct ok) { 0x83, 0x85, 0x87, 0x89 }; The next abort about this line is under a if (out == 0x89878583) so would not abort either. By the way, no need to do a bootstrap again or run the whole testsuite to try this patch, only this test was changed.
[Bug lto/61123] With LTO, -fno-short-enums is ignored, resulting in ABI mis-matching in linking.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61123 Ramana Radhakrishnan ramana at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2014-06-06 CC||ramana at gcc dot gnu.org Target Milestone|--- |4.10.0 Ever confirmed|0 |1
[Bug c++/60755] lambda capturing `this` doesn't honor const qualifier of the enclosing member function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60755 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED Target Milestone|--- |4.10.0 --- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com --- I think we can close this as fixed in 4.10.0.
[Bug c++/60878] Explicit Specialization of Inner Template Class In A Template Class, Using an Enum class in Parent Template Class as Template Argument
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60878 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com --- Closing.
[Bug c++/60771] rejects-valid: static in-class constexpr const reference initialization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60771 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2014-06-06 Blocks||55004 Ever confirmed|0 |1
[Bug c++/61305] internal compiler error: in cp_tree_equal, at cp/tree.c:2371
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61305 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Known to work||4.10.0, 4.8.0, 4.9.0 Resolution|--- |WORKSFORME --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com --- This works for me in the active branches (4.6 is not maintained anymore).
[Bug c++/60199] 'error: field initializer is not constant' when initializing static member function pointer to a function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60199 --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com --- Yes, this is fixed, I'm adding the testcase and closing the bug.
[Bug c++/60199] 'error: field initializer is not constant' when initializing static member function pointer to a function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60199 --- Comment #3 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org --- Author: paolo Date: Fri Jun 6 09:52:33 2014 New Revision: 211310 URL: http://gcc.gnu.org/viewcvs?rev=211310root=gccview=rev Log: 2014-06-06 Paolo Carlini paolo.carl...@oracle.com PR c++/60199 * g++.dg/cpp0x/constexpr-60199.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-60199.C Modified: trunk/gcc/testsuite/ChangeLog
[Bug c++/60199] 'error: field initializer is not constant' when initializing static member function pointer to a function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60199 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Known to work||4.10.0, 4.9.0 Resolution|--- |FIXED Target Milestone|--- |4.9.0 --- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com --- Done.
[Bug c++/60432] Member pointer resolution within class definition causes segmentation fault
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60432 --- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com --- Let's add the testcase and close the bug.
[Bug c++/60432] Member pointer resolution within class definition causes segmentation fault
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60432 --- Comment #6 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org --- Author: paolo Date: Fri Jun 6 10:00:55 2014 New Revision: 211312 URL: http://gcc.gnu.org/viewcvs?rev=211312root=gccview=rev Log: 2014-06-06 Paolo Carlini paolo.carl...@oracle.com PR c++/60432 * g++.dg/cpp0x/constexpr-60432.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-60432.C Modified: trunk/gcc/testsuite/ChangeLog
[Bug c++/60432] Member pointer resolution within class definition causes segmentation fault
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60432 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Known to work||4.10.0 Resolution|--- |FIXED Target Milestone|--- |4.9.0 --- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com --- Done.
[Bug c++/60184] g++ does not allow static members of named unions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60184 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2014-06-06 Blocks||55004 Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com Target Milestone|--- |4.10.0 Ever confirmed|0 |1 --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com --- Seems easy to fix.
[Bug target/61423] Incorrect conversion from unsigned int to floating point
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61423 Uroš Bizjak ubizjak at gmail dot com changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |ubizjak at gmail dot com --- Comment #3 from Uroš Bizjak ubizjak at gmail dot com --- Looking into it.
[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320 --- Comment #33 from ro at CeBiTec dot Uni-Bielefeld.DE ro at CeBiTec dot Uni-Bielefeld.DE --- --- Comment #32 from Thomas Preud'homme thomas.preudhomme at arm dot com --- [...] Are you sure the patch was applied to this test? Line 78 I have bfin.inval = (struct ok) { 0x83, 0x85, 0x87, 0x89 }; The next abort about this line is under a if (out == 0x89878583) so would not abort either. By the way, no need to do a bootstrap again or run the whole testsuite to try this patch, only this test was changed. Sorry, I've been dreaming: I'd only applied https://gcc.gnu.org/ml/gcc-patches/2014-06/msg00294.html and https://gcc.gnu.org/ml/gcc-patches/2014-06/msg00295.html With the correct patch for bswap-2.c, the test passes for sparc-sun-solaris2.11 (both 32 and 64-bit). Sorry for the noise. Rainer
[Bug middle-end/56888] memcpy implementation optimized as a call to memcpy
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888 M Welinder terra at gnome dot org changed: What|Removed |Added CC||terra at gnome dot org --- Comment #31 from M Welinder terra at gnome dot org --- Extra complication: the C library's memcpy may change errno to any non-zero value if it so desires. (C99 section 7.5 #5.) That means that raw calls to memcpy (and friends) cannot be generated anywhere where the compiler is unable to prove that the value of errno isn't used. Extra code to store and restore errno must be emitted otherwise.
[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320 --- Comment #34 from Thomas Preud'homme thomas.preudhomme at arm dot com --- Ok, committed then.
[Bug c++/51373] [C++0x] ICE for static pointer to member initialized in-class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51373 Vladimír Štill vl.still at gmail dot com changed: What|Removed |Added CC||vl.still at gmail dot com --- Comment #3 from Vladimír Štill vl.still at gmail dot com --- Created attachment 32899 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32899action=edit gcc -v result
[Bug c++/51373] [C++0x] ICE for static pointer to member initialized in-class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51373 --- Comment #4 from Vladimír Štill vl.still at gmail dot com --- Problem is still present in 4.8.2, reproduce with following code, which compiles in clang 3.4 (both with -std=c++11): struct Y { int o; static constexpr int Y::* x = Y::o; }; gcc -v result included in previous comment. Tested on NixOS linux x86_64.
[Bug c++/51373] [C++0x] ICE for static pointer to member initialized in-class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51373 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Known to work||4.10.0, 4.9.0 Resolution|--- |FIXED Target Milestone|--- |4.9.0 --- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org --- Fixed in 4.9.0 though
[Bug middle-end/56888] memcpy implementation optimized as a call to memcpy
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888 --- Comment #32 from rguenther at suse dot de rguenther at suse dot de --- On Fri, 6 Jun 2014, terra at gnome dot org wrote: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888 M Welinder terra at gnome dot org changed: What|Removed |Added CC||terra at gnome dot org --- Comment #31 from M Welinder terra at gnome dot org --- Extra complication: the C library's memcpy may change errno to any non-zero value if it so desires. (C99 section 7.5 #5.) That's news to me. That means that raw calls to memcpy (and friends) cannot be generated anywhere where the compiler is unable to prove that the value of errno isn't used. That's almost impossible. Extra code to store and restore errno must be emitted otherwise. That is not possible. Note that the compiler emits calls to memcpy for struct copies anyway, so if there is a problem it is a long-standing one.
[Bug c++/51373] [C++0x] ICE for static pointer to member initialized in-class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51373 --- Comment #6 from Vladimír Štill vl.still at gmail dot com --- (In reply to Jonathan Wakely from comment #5) Fixed in 4.9.0 though I'm glad to hear that, I could not yet installed 4.9.0 in my OS.
[Bug middle-end/56888] memcpy implementation optimized as a call to memcpy
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888 --- Comment #33 from Jakub Jelinek jakub at gcc dot gnu.org --- Yeah, I'd say we could document that gcc doesn't support any implementations where memcpy/memmove/memset clobber errno.
[Bug middle-end/56574] False possibly uninitialized variable warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56574 Manuel López-Ibáñez manu at gcc dot gnu.org changed: What|Removed |Added CC||manu at gcc dot gnu.org --- Comment #9 from Manuel López-Ibáñez manu at gcc dot gnu.org --- (In reply to Eric Botcazou from comment #8) ISO C99 6.5.13 says that 'value' is not evaluated when !flag is false. But clearly we are not considering the side-effect of using an uninitialized variable when deciding to output straight-line code sequences. But evaluating an uninitialized variable is not a side-effect, unless accessing the variable itself has a side-effect, so there is no wrong code here. Perhaps the uninit pass can be taught that for a b when a may be uninitialized is actually guarded by if(b!=0). I think this will fix the bug here, no?
[Bug c/61428] New: maybe-uninitialized is broken in all current versions (4.7-4.10)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61428 Bug ID: 61428 Summary: maybe-uninitialized is broken in all current versions (4.7-4.10) Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: aladjev.andrew at gmail dot com Created attachment 32900 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32900action=edit test.c Please checkout attached test.c. There are no variables in this file, that may be uninitialized. gcc-4.7.3 -Werror -pedantic -Wall -Wextra -std=gnu99 -pthread -pipe -O2 test.c -o test test.c: In function ‘func’: test.c:54:14: error: ‘lock_1’ may be used uninitialized in this function [-Werror=maybe-uninitialized] cc1: all warnings being treated as errors gcc-4.8.2 -Werror -pedantic -Wall -Wextra -std=gnu99 -pthread -pipe -O2 test.c -o test test.c: In function ‘func’: test.c:54:14: error: ‘lock_1’ may be used uninitialized in this function [-Werror=maybe-uninitialized] free ( lock_1 ); ^ cc1: all warnings being treated as errors gcc-4.9.0-pre -Werror -pedantic -Wall -Wextra -std=gnu99 -pthread -pipe -O2 test.c -o test test.c: In function ‘func’: test.c:44:17: error: ‘lock_1’ may be used uninitialized in this function [-Werror=maybe-uninitialized] free ( lock_1 ); ^ cc1: all warnings being treated as errors gcc-4.10.0-pre -Werror -pedantic -Wall -Wextra -std=gnu99 -pthread -pipe -O2 test.c -o test test.c: In function ‘func’: test.c:44:17: error: ‘lock_1’ may be used uninitialized in this function [-Werror=maybe-uninitialized] free ( lock_1 ); ^ cc1: all warnings being treated as errors
[Bug middle-end/56574] False possibly uninitialized variable warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56574 --- Comment #10 from Andy Lutomirski luto at mit dot edu --- See PR59500 for another example without . I think I can reduce another test case with only if and else.
[Bug fortran/61429] New: SYSTEM_CLOCK used with non-default integer kind does not produce warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61429 Bug ID: 61429 Summary: SYSTEM_CLOCK used with non-default integer kind does not produce warning Product: gcc Version: 4.8.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: thatcadguy at gmail dot com Compiling: program main implicit none integer(kind=8) :: i call system_clock(i) end program main with gfortran -std=f95 -pedantic -Wall -Wextra produces no warning. According to the F95 standard (13.14.106), COUNT (optional) shall be scalar and of type default integer (it's the same for COUNT_RATE and COUNT_MAX). It's not until F2003 (13.7.117) that the wording is changed to COUNT (optional) shall be scalar and of type integer. Summary: using any other kind but default integer with system_clock should not be allowed or give a warning under -std=f95, but should be allowed for -std=f2003 and later.
[Bug c++/61421] Invalid -O2 optimization breaks program
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61421 --- Comment #19 from mimamer at gmail dot com --- One last comment on strict aliasing rules: It is ironic that these rules are supposed to make programs faster, but those developers that really care about speed are prevented from implementing even moderate optimizations (see discussion) because of these rules! Again, the concept of strict aliasing rules is broken.
[Bug target/61423] Incorrect conversion from unsigned int to floating point
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61423 --- Comment #4 from Uroš Bizjak ubizjak at gmail dot com --- Created attachment 32901 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32901action=edit Proposed patch This patch fies invalid code gen, but unfortunately uncovers a problem in REE pass and fails bootstrap when configured --with-arch=core-avx-i --with-cpu=core-avx-i.
[Bug tree-optimization/59299] We do not sink loads
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59299 --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org --- Author: rguenth Date: Fri Jun 6 15:31:47 2014 New Revision: 211317 URL: http://gcc.gnu.org/viewcvs?rev=211317root=gccview=rev Log: 2014-06-06 Richard Biener rguent...@suse.de PR tree-optimization/59299 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on a def operand. (nearest_common_dominator_of_uses): Likewise. (statement_sink_location): Adjust. Support sinking loads. * gcc.dg/tree-ssa/ssa-sink-10.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-10.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-sink.c
[Bug middle-end/61430] New: [4.10 regression] ICE in lra_create_copy
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61430 Bug ID: 61430 Summary: [4.10 regression] ICE in lra_create_copy Product: gcc Version: 4.10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: christophe.lyon at st dot com Commit 211304 (Move 2nd VRP pass before phi-only-cprop) make GCC ICE when build glibc for target arm-none-linux-gnueabihf --with-cpu=cortex-a5 (works with cortex-a9). Compile with: $ arm-none-linux-gnueabihf-gcc vfscanf.i -c -std=gnu99 -O2 vfscanf.c: In function '_IO_vfscanf_internal': vfscanf.c:2937:1: internal compiler error: in lra_create_copy, at lra.c:1368 } ^ 0x86ad8b lra_create_copy(int, int, int) /work1/lyon/Work/ARM/Linaro/sources/gcc-fsf/trunk/gcc/lra.c:1368 0x8836a0 process_bb_lives /work1/lyon/Work/ARM/Linaro/sources/gcc-fsf/trunk/gcc/lra-lives.c:568 0x8836a0 lra_create_live_ranges(bool) /work1/lyon/Work/ARM/Linaro/sources/gcc-fsf/trunk/gcc/lra-lives.c:1019 0x86c3b4 lra(_IO_FILE*) /work1/lyon/Work/ARM/Linaro/sources/gcc-fsf/trunk/gcc/lra.c:2212 0x82c62e do_reload /work1/lyon/Work/ARM/Linaro/sources/gcc-fsf/trunk/gcc/ira.c:5414 0x82c62e execute /work1/lyon/Work/ARM/Linaro/sources/gcc-fsf/trunk/gcc/ira.c:5575 Please submit a full bug report, gcc configured with: --target=arm-none-linux-gnueabihf --enable-languages=c --with-float=hard --enable-build-with-cxx --with-mode=arm --with-cpu=cortex-a5 --with-fpu=vfpv3-d16-fp16
[Bug tree-optimization/59299] We do not sink loads
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59299 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org --- Fixed.
[Bug middle-end/61430] [4.10 regression] ICE in lra_create_copy
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61430 --- Comment #1 from christophe.lyon at st dot com --- Created attachment 32902 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32902action=edit vfscanf.i
[Bug target/61431] New: Powerpc tests pack01.c and p8vector-int128-2.c fail on little endian power8 systems
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61431 Bug ID: 61431 Summary: Powerpc tests pack01.c and p8vector-int128-2.c fail on little endian power8 systems Product: gcc Version: 4.10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: meissner at gcc dot gnu.org Host: powerpc64le-linux Target: powerpc64le-linux Build: powerpc64le-linux The pack01.c test fails on GCC 4.8 on little endian power8 systems. In looking at it, it is a latent bug where the V1TI memory operations do not have the word swapping define_split support. GCC 4.9 and trunk can optimize the union to stay in a register, so the test case passes on those systems, but it is still a bug that would be exposed if you ever need to store vector __int128 values. The test p8vector-int128-2.c is such a case, and it needs the fix.
[Bug target/61423] Incorrect conversion from unsigned int to floating point
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61423 --- Comment #5 from Uroš Bizjak ubizjak at gmail dot com --- Created attachment 32903 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32903action=edit Testcase that fails in REE pass This testcase fails with patched gcc in REE pass: cc1 -O2 -m32 -march=corei7 libgcc2.i /home/uros/gcc-svn/trunk/libgcc/libgcc2.c: In function ‘__fixunssfdi’: /home/uros/gcc-svn/trunk/libgcc/libgcc2.c:1492:1: error: insn does not satisfy its constraints: } ^ (insn 54 11 47 2 (set (reg:DI 0 ax) (reg:DI 21 xmm0)) /home/uros/gcc-svn/trunk/libgcc/libgcc2.c:1444 89 {*movdi_internal} (expr_list:REG_UNUSED (reg:DI 0 ax) (nil))) /home/uros/gcc-svn/trunk/libgcc/libgcc2.c:1492:1: internal compiler error: in copyprop_hardreg_forward_1, at regcprop.c:776 ... _split2 pass produces correct sequence: (insn 46 11 47 2 (set (reg:DI 21 xmm0 [118]) (zero_extend:DI (reg/v:SI 0 ax [orig:85 hi ] [85]))) /home/uros/gcc-svn/trunk/libgcc/libgcc2.c:1452 133 {*zero_extendsidi2} (nil)) (insn 47 46 48 2 (set (mem/c:DI (reg/f:SI 7 sp) [0 S8 A64]) (reg:DI 21 xmm0 [118])) /home/uros/gcc-svn/trunk/libgcc/libgcc2.c:1452 89 {*movdi_internal} (nil)) (insn 48 47 13 2 (set (reg:DF 9 st(1) [orig:101 D.6895 ] [101]) (float:DF (mem/c:DI (reg/f:SI 7 sp) [0 S8 A64]))) /home/uros/gcc-svn/trunk/libgcc/libgcc2.c:1452 206 {*floatdidf2_i387} (nil)) and _ree pass converts this to: (insn 11 45 54 2 (set (reg:DI 21 xmm0) (zero_extend:DI (reg:SI 2 cx [99]))) /home/uros/gcc-svn/trunk/libgcc/libgcc2.c:1444 133 {*zero_extendsidi2} (nil)) (insn 54 11 47 2 (set (reg:DI 0 ax) (reg:DI 21 xmm0)) /home/uros/gcc-svn/trunk/libgcc/libgcc2.c:1444 -1 (nil)) (insn 47 54 48 2 (set (mem/c:DI (reg/f:SI 7 sp) [0 S8 A64]) (reg:DI 21 xmm0 [118])) /home/uros/gcc-svn/trunk/libgcc/libgcc2.c:1452 89 {*movdi_internal} (nil)) (insn 48 47 13 2 (set (reg:DF 9 st(1) [orig:101 D.6895 ] [101]) (float:DF (mem/c:DI (reg/f:SI 7 sp) [0 S8 A64]))) /home/uros/gcc-svn/trunk/libgcc/libgcc2.c:1452 206 {*floatdidf2_i387} (nil)) Please note ivalid (insn 54).
[Bug middle-end/61430] [4.10 regression] ICE in lra_create_copy
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61430 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target||arm-none-linux-gnueabihf CC||vmakarov at gcc dot gnu.org Target Milestone|--- |4.10.0 --- Comment #2 from Richard Biener rguenth at gcc dot gnu.org --- Well, an LRA ICE is unlikely caused by this change. It must be a latent issue instead.
[Bug target/61423] Incorrect conversion from unsigned int to floating point
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61423 Uroš Bizjak ubizjak at gmail dot com changed: What|Removed |Added CC||law at gcc dot gnu.org --- Comment #6 from Uroš Bizjak ubizjak at gmail dot com --- Jeff, can you please look at what goes wrong in REE pass?
[Bug middle-end/61428] maybe-uninitialized is broken in all current versions (4.7-4.10)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61428 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Keywords||diagnostic Status|UNCONFIRMED |NEW Last reconfirmed||2014-06-06 Component|c |middle-end Ever confirmed|0 |1 --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org --- Confirmed.
[Bug target/61431] Powerpc tests pack01.c and p8vector-int128-2.c fail on little endian power8 systems
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61431 Michael Meissner meissner at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2014-06-06 Ever confirmed|0 |1
[Bug c++/60184] g++ does not allow static members of named unions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60184 --- Comment #2 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org --- Author: paolo Date: Fri Jun 6 16:01:37 2014 New Revision: 211318 URL: http://gcc.gnu.org/viewcvs?rev=211318root=gccview=rev Log: /cp 2014-06-06 Paolo Carlini paolo.carl...@oracle.com PR c++/60184 * class.c (check_field_decls): In C++11 mode do not reject static data members and reference-type members in unions. /testsuite 2014-06-06 Paolo Carlini paolo.carl...@oracle.com PR c++/60184 * g++.dg/cpp0x/constexpr-union6.C: New. * g++.dg/cpp0x/union6.C: Likewise. * g++.dg/init/ref14.C: Adjust. * g++.dg/init/union1.C: Likewise. Added: trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-union6.C trunk/gcc/testsuite/g++.dg/cpp0x/union6.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/init/ref14.C trunk/gcc/testsuite/g++.dg/init/union1.C
[Bug c++/55004] [meta-bug] constexpr issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55004 Bug 55004 depends on bug 60184, which changed state. Bug 60184 Summary: g++ does not allow static members of named unions https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60184 What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED
[Bug c++/60184] g++ does not allow static members of named unions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60184 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot gnu.org --- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com --- Fixed for 4.10.0.
[Bug middle-end/61430] [4.10 regression] ICE in lra_create_copy
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61430 --- Comment #3 from christophe.lyon at st dot com --- Probably, since the build succeeded at rev 211303.
[Bug fortran/61429] SYSTEM_CLOCK used with non-default integer kind does not produce warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61429 kargl at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2014-06-06 CC||kargl at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |kargl at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from kargl at gcc dot gnu.org --- I have a patch.
[Bug rtl-optimization/61325] [4.10 regression] aarch64_be build fails
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61325 --- Comment #7 from Vladimir Makarov vmakarov at gcc dot gnu.org --- Author: vmakarov Date: Fri Jun 6 17:21:18 2014 New Revision: 211319 URL: http://gcc.gnu.org/viewcvs?rev=211319root=gccview=rev Log: 2014-06-06 Vladimir Makarov vmaka...@redhat.com PR rtl-optimization/61325 * lra-constraints.c (process_address_1): Check scale equal to one to prevent transformation: base + scale * index = base + new_reg. Modified: branches/gcc-4_9-branch/gcc/ChangeLog branches/gcc-4_9-branch/gcc/lra-constraints.c
[Bug rtl-optimization/61325] [4.10 regression] aarch64_be build fails
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61325 --- Comment #8 from Vladimir Makarov vmakarov at gcc dot gnu.org --- Author: vmakarov Date: Fri Jun 6 17:22:34 2014 New Revision: 211320 URL: http://gcc.gnu.org/viewcvs?rev=211320root=gccview=rev Log: 2014-06-06 Vladimir Makarov vmaka...@redhat.com PR rtl-optimization/61325 * lra-constraints.c (process_address_1): Check scale equal to one to prevent transformation: base + scale * index = base + new_reg. Modified: trunk/gcc/ChangeLog trunk/gcc/lra-constraints.c
[Bug target/61423] Incorrect conversion from unsigned int to floating point
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61423 --- Comment #7 from uros at gcc dot gnu.org --- Author: uros Date: Fri Jun 6 17:45:10 2014 New Revision: 211321 URL: http://gcc.gnu.org/viewcvs?rev=211321root=gccview=rev Log: PR target/61423 * config/i386/i386.md (*floatunssimode2_i387_with_xmm): New define_insn_and_split pattern, merged from *floatunssimode2_1 and corresponding splitters. Zero extend general register or memory input operand to XMM temporary. Enable for TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only. (floatunssimode2): Update expander predicate. testsuite/ChangeLog: PR target/61423 * gcc.target/i386/pr61423.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr61423.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.md trunk/gcc/testsuite/ChangeLog
[Bug bootstrap/61432] New: Build error gcc 4.9 on OSX 10.10
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61432 Bug ID: 61432 Summary: Build error gcc 4.9 on OSX 10.10 Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: denji0k at gmail dot com Have problem build with OSX 10.10 checking build system type... x86_64-apple-darwin14.0.0 xgcc: warning: couldn’t understand kern.osversion ‘14.0.0 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/Availability.h:174:44: error: missing binary operator before token ( #if defined(__has_feature) __has_feature(attribute_availability_with_message) ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/Availability.h:184:44: error: missing binary operator before token ( #if defined(__has_feature) __has_feature(attribute_availability_app_extension) ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/Availability.h:184:44: error: missing binary operator before token ( #if defined(__has_feature) __has_feature(attribute_availability_app_extension) ^
[Bug libgcc/61432] Build error gcc 4.9 on OSX 10.10
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61432 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org --- Dup of bug 61407. *** This bug has been marked as a duplicate of bug 61407 ***
[Bug target/61431] Powerpc tests pack01.c and p8vector-int128-2.c fail on little endian power8 systems
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61431 --- Comment #1 from Michael Meissner meissner at gcc dot gnu.org --- Created attachment 32905 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32905action=edit Proposed patch to fix the problem
[Bug target/61407] Build errors on latest OS X 10.10 Yosemite with Xcode 6 on GCC 4.8.3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61407 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added CC||denji0k at gmail dot com --- Comment #6 from Andrew Pinski pinskia at gcc dot gnu.org --- *** Bug 61432 has been marked as a duplicate of this bug. ***
[Bug preprocessor/36453] [DR 412] PR36320 breaks boost
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36453 --- Comment #14 from Andrew Pinski pinskia at gcc dot gnu.org --- http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_412.htm
[Bug target/61407] Build errors on latest OS X 10.10 Yosemite with Xcode 6 on GCC 4.8.3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61407 --- Comment #7 from Andrew Pinski pinskia at gcc dot gnu.org --- So it turns out there is a defect report against the C, see PR 36453 but that is only for #elif and not #if defined(a) a()
[Bug preprocessor/36453] [DR 412] PR36320 breaks boost
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36453 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added Status|SUSPENDED |NEW --- Comment #15 from Andrew Pinski pinskia at gcc dot gnu.org --- Looks like there is TR about this now as far as I can tell from Feb 2012.
[Bug c++/61433] New: [4.9/4.10 Regression] ICE: SIGSEGV in friend_accessible_p (search.c:778) with -std=gnu++11 -O -fcompare-debug -fno-inline -fno-ipa-pure-const -fipa-sra
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61433 Bug ID: 61433 Summary: [4.9/4.10 Regression] ICE: SIGSEGV in friend_accessible_p (search.c:778) with -std=gnu++11 -O -fcompare-debug -fno-inline -fno-ipa-pure-const -fipa-sra Product: gcc Version: 4.10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Created attachment 32906 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32906action=edit reduced testcase Compiler output (under valgrind): $ gcc -std=gnu++11 -O -fcompare-debug -fno-inline -fno-ipa-pure-const -fipa-sra testcase.C ==2513== Invalid read of size 2 ==2513==at 0x7C4941: friend_accessible_p(tree_node*, tree_node*, tree_node*) (search.c:778) ==2513==by 0x7C4F58: accessible_p(tree_node*, tree_node*, bool) (search.c:928) ==2513==by 0x7C5114: accessible_base_p(tree_node*, tree_node*, bool) (search.c:171) ==2513==by 0x7C4564: lookup_base(tree_node*, tree_node*, int, base_kind*, int) (search.c:273) ==2513==by 0x79AE19: finish_class_member_access_expr(tree_node*, tree_node*, bool, int) (typeck.c:2755) ==2513==by 0x6A7BD0: tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) (pt.c:15187) ==2513==by 0x6AC207: tsubst(tree_node*, tree_node*, int, tree_node*) (pt.c:12280) ==2513==by 0x738DB0: dump_substitution(cxx_pretty_printer*, tree_node*, tree_node*, tree_node*, int) (error.c:330) ==2513==by 0x73B815: decl_as_string(tree_node*, int) (error.c:2738) ==2513==by 0xDAE0E5: dump_function_header(_IO_FILE*, tree_node*, int) (tree-pretty-print.c:3454) ==2513==by 0xA3589E: (anonymous namespace)::pass_clean_state::execute(function*) (final.c:4605) ==2513==by 0xC17387: execute_one_pass(opt_pass*) (passes.c:2180) ==2513==by 0xC177B5: execute_pass_list_1(opt_pass*) (passes.c:2233) ==2513==by 0xC17808: execute_pass_list(function*, opt_pass*) (passes.c:2244) ==2513==by 0x94D6AF: expand_function(cgraph_node*) (cgraphunit.c:1787) ==2513==by 0x94F863: compile() (cgraphunit.c:1921) ==2513==by 0x94FF64: finalize_compilation_unit() (cgraphunit.c:2342) ==2513==by 0x72C2DE: cp_write_global_declarations() (decl2.c:4647) ==2513==by 0xD1245C: compile_file() (toplev.c:562) ==2513==by 0xD14494: toplev_main(int, char**) (toplev.c:1918) ==2513==by 0x5A46BF4: (below main) (in /lib64/libc-2.17.so) ==2513== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==2513== ==2513== ==2513== Process terminating with default action of signal 11 (SIGSEGV) ==2513== Access not within mapped region at address 0x0 ==2513==at 0x7C4941: friend_accessible_p(tree_node*, tree_node*, tree_node*) (search.c:778) ==2513==by 0x7C4F58: accessible_p(tree_node*, tree_node*, bool) (search.c:928) ==2513==by 0x7C5114: accessible_base_p(tree_node*, tree_node*, bool) (search.c:171) ==2513==by 0x7C4564: lookup_base(tree_node*, tree_node*, int, base_kind*, int) (search.c:273) ==2513==by 0x79AE19: finish_class_member_access_expr(tree_node*, tree_node*, bool, int) (typeck.c:2755) ==2513==by 0x6A7BD0: tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) (pt.c:15187) ==2513==by 0x6AC207: tsubst(tree_node*, tree_node*, int, tree_node*) (pt.c:12280) ==2513==by 0x738DB0: dump_substitution(cxx_pretty_printer*, tree_node*, tree_node*, tree_node*, int) (error.c:330) ==2513==by 0x73B87E: decl_as_string_translate(tree_node*, int) (error.c:2746) ==2513==by 0x73AEA2: cp_diagnostic_starter(diagnostic_context*, diagnostic_info*) (error.c:3087) ==2513==by 0x15EA4B8: diagnostic_report_diagnostic(diagnostic_context*, diagnostic_info*) (diagnostic.c:798) ==2513==by 0x15EB21F: internal_error(char const*, ...) (diagnostic.c:1136) ==2513==by 0xD123CF: crash_signal(int) (toplev.c:337) ==2513==by 0x5A5A5AF: ??? (in /lib64/libc-2.17.so) ==2513==by 0x7C4940: friend_accessible_p(tree_node*, tree_node*, tree_node*) (search.c:778) ==2513==by 0x7C4F58: accessible_p(tree_node*, tree_node*, bool) (search.c:928) ==2513==by 0x7C5114: accessible_base_p(tree_node*, tree_node*, bool) (search.c:171) ==2513==by 0x7C4564: lookup_base(tree_node*, tree_node*, int, base_kind*, int) (search.c:273) ==2513==by 0x79AE19: finish_class_member_access_expr(tree_node*, tree_node*, bool, int) (typeck.c:2755) ==2513==by 0x6A7BD0: tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) (pt.c:15187) ==2513==by 0x6AC207: tsubst(tree_node*, tree_node*, int, tree_node*) (pt.c:12280) ==2513==by 0x738DB0: dump_substitution(cxx_pretty_printer*, tree_node*, tree_node*, tree_node*, int) (error.c:330) ==2513==by 0x73B815: decl_as_string(tree_node*, int) (error.c:2738) ==2513==by 0xDAE0E5: dump_function_header(_IO_FILE*,
[Bug debug/38757] gcc does not emit DW_LANG_C99
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38757 --- Comment #6 from Mark Wielaard mark at gcc dot gnu.org --- Current 4.9 rebased version of the patch is here: http://pkgs.fedoraproject.org/cgit/gcc.git/tree/gcc49-pr38757.patch
[Bug tree-optimization/61434] New: wrong code at -O3 on x86_64-linux
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61434 Bug ID: 61434 Summary: wrong code at -O3 on x86_64-linux Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: su at cs dot ucdavis.edu The current gcc trunk miscompiles the following code on x86_64-linux at -O3 in both 32-bit and 64-bit modes. This is a regression from 4.9.x. The issue seems to be in the tree vectorizer as the reported test does not fail with -fno-tree-vectorize. $ gcc-trunk -v Using built-in specs. COLLECT_GCC=gcc-trunk COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.10.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc-trunk/configure --prefix=/usr/local/gcc-trunk --enable-languages=c,c++ --disable-werror --enable-multilib Thread model: posix gcc version 4.10.0 20140606 (experimental) [trunk revision 211299] (GCC) $ $ gcc-trunk -O2 small.c; a.out $ gcc-trunk -fno-tree-vectorize -O3 small.c; a.out $ gcc-4.9.0 -O3 small.c; a.out $ $ gcc-trunk -O3 small.c $ a.out Aborted (core dumped) $ - int a, b[2], c, d, e, f, g; struct { int f1:1; int f2:1; } w; void fn1 (int p1, int p2) { // does nothing } int main () { b[1] = 1; for (; f 1; f++) { w.f2 = 0; if (w.f1) fn1 (e++, a++ d++); } for (; g 1; g++) c = b[a]; if (c != 0) __builtin_abort (); return 0; }
[Bug ipa/61283] [4.10 regression] SEGV in pass_ipa_comdats::execute
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61283 Hans-Peter Nilsson hp at gcc dot gnu.org changed: What|Removed |Added CC||hp at gcc dot gnu.org --- Comment #1 from Hans-Peter Nilsson hp at gcc dot gnu.org --- Also seen for mmix-knuth-mmixware at r211121, worked at r21, host x86_64-linux.
[Bug target/61431] Powerpc tests pack01.c and p8vector-int128-2.c fail on little endian power8 systems
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61431 --- Comment #2 from Michael Meissner meissner at gcc dot gnu.org --- Author: meissner Date: Fri Jun 6 23:15:36 2014 New Revision: 211329 URL: http://gcc.gnu.org/viewcvs?rev=211329root=gccview=rev Log: 2014-06-06 Michael Meissner meiss...@linux.vnet.ibm.com PR target/61431 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate iterators, VSX_D that handles 64-bit types, and VSX_LE that handles swapping the two 64-bit double words on little endian systems. Include V1TImode and optionally TImode in VSX_LE so that these types are properly swapped. Change all of the insns and splits that do the 64-bit swaps to use VSX_LE. (vsx_le_perm_load_mode): Likewise. (vsx_le_perm_store_mode): Likewise. (splitters for little endian memory operations): Likewise. (vsx_xxpermdi2_le_mode): Likewise. (vsx_lxvd2x2_le_mode): Likewise. (vsx_stxvd2x2_le_mode): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/vsx.md
[Bug c++/61435] New: -imacros switch breaks warning/error reporting
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61435 Bug ID: 61435 Summary: -imacros switch breaks warning/error reporting Product: gcc Version: 4.8.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: oliver at bway dot net SUMMARY: -imacros switch breaks warning/error reporting When the -imacros switch is used, and the source file has errors or warnings, the file name in the warning message gets lost and is replaced with command-line. GCC VERSION: $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) COMMAND LINE WHICH TRIGGERS BUG: g++ -imacros validinclude.h causeerror.cpp COMPILER OUTPUT (the output itself is the bug): command-line:0:1: error: ‘blah’ does not name a type The source file causeerror.cpp has the one line: blah The valid file validinclude.h has the one line: #define one 1 HERE IS THE .ii file: # 1 causeerror.cpp # 1 command-line # 1 ./validinclude.h 1 # 1 command-line 2 # 1 /usr/include/stdc-predef.h 1 3 4 # 1 causeerror.cpp # 1 command-line 2 blah
[Bug c++/61435] -imacros switch breaks warning/error reporting
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61435 --- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org --- I think this is a dup of bug 60723.
[Bug target/61431] Powerpc tests pack01.c and p8vector-int128-2.c fail on little endian power8 systems
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61431 --- Comment #3 from Michael Meissner meissner at gcc dot gnu.org --- Author: meissner Date: Fri Jun 6 23:46:23 2014 New Revision: 211331 URL: http://gcc.gnu.org/viewcvs?rev=211331root=gccview=rev Log: 2014-06-06 Michael Meissner meiss...@linux.vnet.ibm.com Back port from trunk 2014-06-06 Michael Meissner meiss...@linux.vnet.ibm.com PR target/61431 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate iterators, VSX_D that handles 64-bit types, and VSX_LE that handles swapping the two 64-bit double words on little endian systems. Include V1TImode and optionally TImode in VSX_LE so that these types are properly swapped. Change all of the insns and splits that do the 64-bit swaps to use VSX_LE. (vsx_le_perm_load_mode): Likewise. (vsx_le_perm_store_mode): Likewise. (splitters for little endian memory operations): Likewise. (vsx_xxpermdi2_le_mode): Likewise. (vsx_lxvd2x2_le_mode): Likewise. (vsx_stxvd2x2_le_mode): Likewise. Modified: branches/gcc-4_9-branch/gcc/ChangeLog branches/gcc-4_9-branch/gcc/config/rs6000/vsx.md
[Bug target/61431] Powerpc tests pack01.c and p8vector-int128-2.c fail on little endian power8 systems
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61431 --- Comment #4 from Michael Meissner meissner at gcc dot gnu.org --- Author: meissner Date: Fri Jun 6 23:52:36 2014 New Revision: 211332 URL: http://gcc.gnu.org/viewcvs?rev=211332root=gccview=rev Log: 2014-06-06 Michael Meissner meiss...@linux.vnet.ibm.com Back port from trunk 2014-06-06 Michael Meissner meiss...@linux.vnet.ibm.com PR target/61431 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate iterators, VSX_D that handles 64-bit types, and VSX_LE that handles swapping the two 64-bit double words on little endian systems. Include V1TImode and optionally TImode in VSX_LE so that these types are properly swapped. Change all of the insns and splits that do the 64-bit swaps to use VSX_LE. (vsx_le_perm_load_mode): Likewise. (vsx_le_perm_store_mode): Likewise. (splitters for little endian memory operations): Likewise. (vsx_xxpermdi2_le_mode): Likewise. (vsx_lxvd2x2_le_mode): Likewise. (vsx_stxvd2x2_le_mode): Likewise. Modified: branches/gcc-4_8-branch/gcc/ChangeLog branches/gcc-4_8-branch/gcc/config/rs6000/vsx.md
[Bug target/18343] mmix-knuth-mmixware testsuite failure: gcc.dg/builtin-return-1.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=18343 --- Comment #3 from Hans-Peter Nilsson hp at gcc dot gnu.org --- Author: hp Date: Fri Jun 6 23:58:33 2014 New Revision: 211333 URL: http://gcc.gnu.org/viewcvs?rev=211333root=gccview=rev Log: PR target/18343 * gcc.dg/torture/stackalign/builtin-return-1.c (STACK_ARGUMENTS_SIZE): New macro, 0 for __MMIX__, default 64. (bar): Pass it to __builtin_apply instead of literal 64. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/torture/stackalign/builtin-return-1.c
[Bug target/18343] mmix-knuth-mmixware testsuite failure: gcc.dg/builtin-return-1.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=18343 Hans-Peter Nilsson hp at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Hans-Peter Nilsson hp at gcc dot gnu.org --- No ten-year anniversary, sorry. :]
[Bug target/18343] mmix-knuth-mmixware testsuite failure: gcc.dg/builtin-return-1.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=18343 --- Comment #5 from Hans-Peter Nilsson hp at gcc dot gnu.org --- Woops, this PR was actually for an *identical* file in gcc.dg. Anyway, that test passes without the patch these days so let's keep this PR closed.
[Bug regression/61436] New: [4.10 Regression]: g++.dg/tls/diag-1.C ICE (emutls)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61436 Bug ID: 61436 Summary: [4.10 Regression]: g++.dg/tls/diag-1.C ICE (emutls) Product: gcc Version: 4.10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: regression Assignee: unassigned at gcc dot gnu.org Reporter: hp at gcc dot gnu.org CC: hubicka at gcc dot gnu.org Host: x86_64-unknown-linux-gnu Target: mmix-knuth-mmixware This test previously passed, now it fails. A patch in the revision range (last_known_working:first_known_failing) r21:r211121 exposed or caused these regressions. Since then (up to and including at least r211290) it fails as follows: Running /home/hp/gcctop/tmp/mbgnu0/gcc/gcc/testsuite/g++.dg/tls/tls.exp ... FAIL: g++.dg/tls/diag-1.C -std=c++98 (internal compiler error) FAIL: g++.dg/tls/diag-1.C -std=c++98 (test for excess errors) FAIL: g++.dg/tls/diag-1.C -std=c++11 (internal compiler error) FAIL: g++.dg/tls/diag-1.C -std=c++11 (test for excess errors) FAIL: g++.dg/tls/diag-1.C -std=c++1y (internal compiler error) FAIL: g++.dg/tls/diag-1.C -std=c++1y (test for excess errors) I'm guessing all emutls targets are affected. The messages in g++.log are similar: spawn -ignore SIGHUP /home/hp/gcctop/tmp/mbase0/gccobj/gcc/testsuite/g++/../../xg++ -B/home/hp/gcctop/tmp/mbase0/gccobj/gcc/testsuite/g++/../../ /home/hp/gcctop/tmp/mbase0/gcc/gcc/testsuite/g++.dg/tls/diag-1.C -fno-diagnostics-show-caret -fdiagnostics-color=never -nostdinc++ -I/home/hp/gcctop/tmp/mbase0/gccobj/mmix/libstdc++-v3/include/mmix -I/home/hp/gcctop/tmp/mbase0/gccobj/mmix/libstdc++-v3/include -I/home/hp/gcctop/tmp/mbase0/gcc/libstdc++-v3/libsupc++ -I/home/hp/gcctop/tmp/mbase0/gcc/libstdc++-v3/include/backward -I/home/hp/gcctop/tmp/mbase0/gcc/libstdc++-v3/testsuite/util -fmessage-length=0 -std=c++98 -pedantic-errors -Wno-long-long -S -isystem /home/hp/gcctop/tmp/mbase0/gccobj/mmix/./newlib/targ-include -isystem /home/hp/gcctop/tmp/mbase0/gcc/newlib/libc/include -o diag-1.s /home/hp/gcctop/tmp/mbase0/gcc/gcc/testsuite/g++.dg/tls/diag-1.C:31:1: internal compiler error: in symtab_get_node, at cgraph.h:1035 0xd610c3 symtab_get_node /home/hp/gcctop/tmp/mbase0/gcc/gcc/cgraph.h:1032 0xd610c3 varpool_get_node /home/hp/gcctop/tmp/mbase0/gcc/gcc/cgraph.h:1074 0xd610c3 varpool_node_for_decl(tree_node*) /home/hp/gcctop/tmp/mbase0/gcc/gcc/varpool.c:147 0xd54cb4 make_decl_one_only(tree_node*, tree_node*) /home/hp/gcctop/tmp/mbase0/gcc/gcc/varasm.c:5932 0xb2a14e get_emutls_init_templ_addr /home/hp/gcctop/tmp/mbase0/gcc/gcc/tree-emutls.c:254 0xb2a14e get_emutls_init_templ_addr /home/hp/gcctop/tmp/mbase0/gcc/gcc/tree-emutls.c:222 0xb2aade new_emutls_decl /home/hp/gcctop/tmp/mbase0/gcc/gcc/tree-emutls.c:339 0xb2aade create_emultls_var /home/hp/gcctop/tmp/mbase0/gcc/gcc/tree-emutls.c:717 0xd625ef varpool_for_node_and_aliases(varpool_node*, bool (*)(varpool_node*, void*), void*, bool) /home/hp/gcctop/tmp/mbase0/gcc/gcc/varpool.c:682 0xb2ba87 ipa_lower_emutls /home/hp/gcctop/tmp/mbase0/gcc/gcc/tree-emutls.c:788 0xb2ba87 execute /home/hp/gcctop/tmp/mbase0/gcc/gcc/tree-emutls.c:849 Please submit a full bug report, with preprocessed source if appropriate. Looking at the code, it seems the assert in symtab_get_node at cgraph.h:1035 trigs. This code was changed in r210901, though the assert was only copied. Still, many changes around that time by the same author, so there's a good chance the attribution is correct. :) A gdb session shows, at the gcc_assert: (gdb) p decl $15 = (const_tree) 0x77ea68e8 (gdb) pt var_decl 0x77ea68e8 __emutls_t__ZN1BIiE1tE type integer_type 0x77dbd690 int sizes-gimplified public type_6 SI size integer_cst 0x77dbce28 constant 32 unit size integer_cst 0x77dbce40 constant 4 align 32 symtab 0 alias set -1 canonical type 0x77dbd690 precision 32 min integer_cst 0x77dbcde0 -2147483648 max integer_cst 0x77dbcdf8 2147483647 pointer_to_this pointer_type 0x77dd1738 readonly used public ignored weak SI file /home/hp/gcctop/tmp/mbase0/gcc/gcc/testsuite/g++.dg/tls/diag-1.C line 25 col 12 size integer_cst 0x77dbce28 32 unit size integer_cst 0x77dbce40 4 align 32 context record_type 0x77ea2540 B (gdb) bt #0 fancy_abort (file=0xfa7550 /home/hp/gcctop/tmp/mbase0/gcc/gcc/cgraph.h, line=1035, function=0xfa77e0 symtab_get_node) at /home/hp/gcctop/tmp/mbase0/gcc/gcc/diagnostic.c:1190 #1 0x00d64ed4 in symtab_get_node (decl=0x77ea68e8) at /home/hp/gcctop/tmp/mbase0/gcc/gcc/cgraph.h:1032 #2 0x00d64f8b in varpool_get_node (decl=0x77ea68e8) at /home/hp/gcctop/tmp/mbase0/gcc/gcc/cgraph.h:1074 #3 0x00d655fc in varpool_node_for_decl (decl= var_decl 0x77ea68e8
[Bug target/61387] [4.10 Regression] ~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211088
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61387 Hans-Peter Nilsson hp at gcc dot gnu.org changed: What|Removed |Added CC||hp at gcc dot gnu.org --- Comment #6 from Hans-Peter Nilsson hp at gcc dot gnu.org --- (In reply to Dominique d'Humieres from comment #5) The following patch fixes the failures (not counting new ones: g++.dg/debug/dwarf2/imported-decl-2.C and g++.dg/tls/diag-1.C). Is the g++.dg/tls/diag-1.C the same as in PR61436? Seems likely as darwin is IIUC an emutls target.
[Bug regression/61436] [4.10 Regression]: g++.dg/tls/diag-1.C ICE (emutls)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61436 Hans-Peter Nilsson hp at gcc dot gnu.org changed: What|Removed |Added Target|mmix-knuth-mmixware |mmix-knuth-mmixware, ||cris-elf --- Comment #1 from Hans-Peter Nilsson hp at gcc dot gnu.org --- Bah, I should've checked my cris-elf autotester, since I suspected an emutls-related bug. It confirms the issue, and says the regression was introduced in (210899:210906], consistent with the previous observations.
[Bug regression/61436] [4.10 Regression]: g++.dg/tls/diag-1.C ICE (emutls)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61436 Hans-Peter Nilsson hp at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1
[Bug tree-optimization/61437] New: wrong code on x86_64-linux-gnu when compile separately
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61437 Bug ID: 61437 Summary: wrong code on x86_64-linux-gnu when compile separately Product: gcc Version: 4.10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: su at cs dot ucdavis.edu The current gcc trunk miscompiles the following files (foo.c and main.c) on x86_64-linux in both 32-bit and 64-bit modes. This is a regression from 4.9.x. The merged file (merged.c) does not trigger the bug. $ gcc-trunk -v Using built-in specs. COLLECT_GCC=gcc-trunk COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.10.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc-trunk/configure --prefix=/usr/local/gcc-trunk --enable-languages=c,c++ --disable-werror --enable-multilib Thread model: posix gcc version 4.10.0 20140606 (experimental) [trunk revision 211322] (GCC) $ $ gcc-trunk -O2 -c foo.c $ gcc-trunk -O2 -c main.c $ gcc-trunk -O2 foo.o main.o $ a.out a.out: foo.c:9: foo: Assertion `b == 0' failed. Aborted (core dumped) $ $ gcc-4.9.0 -O2 -c foo.c $ gcc-4.9.0 -O2 -c main.c $ gcc-4.9.0 -O2 foo.o main.o $ a.out $ $ gcc-trunk -O2 merged.c $ a.out $ $ cat foo.c #include assert.h extern int *b, **c; int foo (void) { int *t = 0; *c = t; assert (b == 0); } $ cat main.c extern int foo (void); int a, *b = a, **c = b; int main (void) { foo (); return 0; } $ $ cat merged.c #include assert.h int a; int *b = a; int **c = b; int foo () { int *t = 0; *c = t; assert (b == 0); } int main () { foo (); return 0; } $