[Bug preprocessor/47254] ICE: unspellable token PRAGMA_EOL with #pragma redefine_extname and -fdirectives-only
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47254 Shakthi Kannan skannan at redhat dot com changed: What|Removed |Added CC||skannan at redhat dot com --- Comment #1 from Shakthi Kannan skannan at redhat dot com --- Confirmed. $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --disable-build-with-cxx --disable-build-poststage1-with-cxx --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 4.7.2 20121109 (Red Hat 4.7.2-8) (GCC)
[Bug preprocessor/44317] ,##__VA_ARGS__ comma not eaten with -std=c++0x
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44317 Shakthi Kannan skannan at redhat dot com changed: What|Removed |Added CC||skannan at redhat dot com --- Comment #1 from Shakthi Kannan skannan at redhat dot com --- Confirmed. Tested with cpp (GCC) 4.7.2 20121109.
[Bug preprocessor/44317] ,##__VA_ARGS__ comma not eaten with -std=c++0x
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44317 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||jakub at gcc dot gnu.org Resolution|--- |INVALID --- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org --- Because the eating of comma is a GNU extension. So it is enabled in GNU compilation modes (the default, for C -std=gnu89, -std=gnu99, -std=gnu11, for C++ -std=gnu++98, -std=gnu++03, -std=gnu++11, -std=gnu++0x, -std=gnu++1y) but not in the more strict standard modes (-std=c{89,99,11}, -std=c++{98,03,11,0x,1y}).
[Bug fortran/57297] FAIL: gfortran.dg/select_type_4.f90 -O2 execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57297 --- Comment #6 from rguenther at suse dot de rguenther at suse dot de --- On Thu, 16 May 2013, jamborm at gcc dot gnu.org wrote: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57297 --- Comment #4 from Martin Jambor jamborm at gcc dot gnu.org --- So far I have not attempted to reproduce this myself and so do not quite follow all the previous comments but... (In reply to Richard Biener from comment #2) build_ref_for_offset ends up creating a MEM_REF with different alias pointer type than the original (note that there may be multiple originals and AFAIK we don't make any attempt to merge them conservatively). ...it looks like the second arguments in generate_subtree_copies (racc-first_child, racc-base, 0, 0, 0, gsi, false, false, loc); and generate_subtree_copies (lacc-first_child, lacc-base, 0, 0, 0, gsi, true, true, loc); should be the rhs and lhs respectively, rather than [rl]acc-base. Using rhs/lhs, the generated statements would have the same alias pointer type as the respective sides of the original statement. Can you try that? We should probably also change accordingly (almost all) other calls to generate_subtree_copies (this code generally predates generating MEM_REFs in build_ref_for_offset and this did not matter). I'm not sure - but yes, that would make sure the re-materialization uses the same alias set (does it? not sure exactly how generate_subtree_copies works) as the load that follows. Note that the Fortran frontend is where the bug lies here. I was thinking that the re-materialization for a whole-structure access could use a new temporary and indeed use the alias-set of the access we re-materialize it for for re-construction. Given that if we have if (a) a.b = 1; use alias-set 3 else a.b = 2; use alias-set 8 y = a; aggregate use we cannot re-materialize a before y = a in a way that restore original runtime behavior (the if or the else path may be never executed at runtime). But given that accessing 'a' in the aggregate copy with an alias-set that does not conflict with the actual dynamic type of the memory location invokes undefined behavior we can indeed make sure to re-materialize a before y = a using stores with the alias-set of that access. Re-materializing the original variable will always be hard. I believe that Index: gcc/tree-sra.c === --- gcc/tree-sra.c (revision 198420) +++ gcc/tree-sra.c (working copy) @@ -3158,7 +3158,7 @@ sra_modify_assign (gimple *stmt, gimple_ if (modify_this_stmt || gimple_has_volatile_ops (*stmt) - || contains_vce_or_bfcref_p (rhs) + || contains_bitfld_comp_ref_p (rhs) || contains_vce_or_bfcref_p (lhs)) { if (access_has_children_p (racc)) should work. Even though relaxing this condition might be a good idea to try to generate better code, I'd be against fixing bugs this way, if we can avoid it. This should be the safe path capable of handling everything that the latter more sophisticated approaches might choke on. It would make the already complex code more difficult to maintain and sooner or later we'd hit the same problem again (I think it should be possible use structures with a single field to create a testcase with a similar problem and modify_this_stmt set to true, for example). Yeah, it wasn't meant as a fix for the issue at hand. I remember we have the VCE special-casing here because, contrary to specification, VIEW_CONVERT_EXPRs may change the size of the access. Richard.
[Bug target/57309] Spill code degrades vectorized loop for 437.leslie3d on PPC64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57309 --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org --- Can you isolate a testcase for the worst loop?
[Bug rtl-optimization/57304] [4.9 Regression] Revision 198896 segfaults building cpu2000 benchmark 176.gcc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57304 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.9.0 Summary|Revision 198896 segfaults |[4.9 Regression] Revision |building cpu2000 benchmark |198896 segfaults building |176.gcc |cpu2000 benchmark 176.gcc
[Bug tree-optimization/57303] [4.7/4.8/4.9 Regression] struct miscompiled at -O1 and above
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57303 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Keywords||wrong-code Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Target Milestone|--- |4.7.4 --- Comment #4 from Richard Biener rguenth at gcc dot gnu.org --- Mine.
[Bug rtl-optimization/57302] Should merge zeroing multiple consecutive memory locations
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57302 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org --- There is a duplicate enhancement bugreport about this. *** This bug has been marked as a duplicate of bug 23684 ***
[Bug rtl-optimization/23684] Combine stores for non strict alignment targets
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23684 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added CC||msharov at users dot sourceforge.n ||et --- Comment #10 from Richard Biener rguenth at gcc dot gnu.org --- *** Bug 57302 has been marked as a duplicate of this bug. ***
[Bug rtl-optimization/57304] [4.9 Regression] Revision 198896 segfaults building cpu2000 benchmark 176.gcc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57304 --- Comment #3 from David Edelsohn dje at gcc dot gnu.org --- The patch seems to fix the testsuite failures for me.
[Bug rtl-optimization/57304] [4.9 Regression] Revision 198896 segfaults building cpu2000 benchmark 176.gcc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57304 David Edelsohn dje at gcc dot gnu.org changed: What|Removed |Added Target|powerpc64-linux |powerpc*-*-* Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-17 Host|powerpc64-linux |powerpc*-*-* Ever confirmed|0 |1 Build|powerpc64-linux |powerpc*-*-*
[Bug rtl-optimization/57304] [4.9 Regression] Revision 198896 segfaults building cpu2000 benchmark 176.gcc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57304 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added CC||steven at gcc dot gnu.org --- Comment #4 from Steven Bosscher steven at gcc dot gnu.org --- (In reply to m...@gcc.gnu.org from comment #1) DF_REF_LOC has: DF_REF_CLASS(REF) == DF_REF_REGULAR ? in it, but DF_REF_REAL_LOC does not. :-( Then it should be changed to have that check also.
[Bug tree-optimization/57303] [4.7/4.8/4.9 Regression] struct miscompiled at -O1 and above
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57303 --- Comment #5 from Richard Biener rguenth at gcc dot gnu.org --- DSE has /* If use_stmt is or might be a nop assignment, e.g. for struct { ... } S a, b, *p; ... b = a; b = b; or b = a; b = *p; where p might be b, or *p = a; *p = b; where p might be b, or *p = *u; *p = *v; where p might be v, then USE_STMT acts as a use as well as definition, so store in STMT is not dead. */ if (stmt != use_stmt ref_maybe_used_by_stmt_p (use_stmt, gimple_assign_lhs (stmt))) return; for this very reason.
[Bug preprocessor/47254] ICE: unspellable token PRAGMA_EOL with #pragma redefine_extname and -fdirectives-only
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47254 Manuel López-Ibáñez manu at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-17 CC||manu at gcc dot gnu.org Ever confirmed|0 |1 Known to fail||4.7.2 --- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org --- (In reply to Shakthi Kannan from comment #1) Confirmed. You can edit bug status if you login with your gcc.gnu.org account. It is also broken on trunk gcc version 4.9.0 20130502 (experimental) [trunk revision 198545] (GCC)
[Bug preprocessor/47254] ICE: unspellable token PRAGMA_EOL with #pragma redefine_extname and -fdirectives-only
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47254 --- Comment #3 from Shakthi Kannan skannan at redhat dot com --- Sorry, I don't have a gcc.gnu.org account. Can you please change the status to Confirmed? Thanks!
[Bug preprocessor/44317] ,##__VA_ARGS__ comma not eaten with -std=c++0x
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44317 Manuel López-Ibáñez manu at gcc dot gnu.org changed: What|Removed |Added Status|RESOLVED|UNCONFIRMED CC||manu at gcc dot gnu.org Resolution|INVALID |--- --- Comment #3 from Manuel López-Ibáñez manu at gcc dot gnu.org --- (In reply to Jakub Jelinek from comment #2) Because the eating of comma is a GNU extension. So it is enabled in GNU compilation modes (the default, for C -std=gnu89, -std=gnu99, -std=gnu11, for C++ -std=gnu++98, -std=gnu++03, -std=gnu++11, -std=gnu++0x, -std=gnu++1y) but not in the more strict standard modes (-std=c{89,99,11}, -std=c++{98,03,11,0x,1y}). But g++ does not warn with -Wpedantic, as it should. Instead it gives a very strange message about C99 in C++: test.cc:7:17: warning: ISO C99 requires rest arguments to be used [enabled by default] ASSERT( false ); ^ Clang++ does the right thing: test.cc:2:39: warning: token pasting of ',' and __VA_ARGS__ is a GNU extension [-Wgnu] #define ASSERT( cnd, ... ) SomeClass(),##__VA_ARGS__ ^ test.cc:3:39: warning: token pasting of ',' and __VA_ARGS__ is a GNU extension [-Wgnu] #define FAIL( ... )SomeClass(),##__VA_ARGS__ ^
[Bug preprocessor/47254] ICE: unspellable token PRAGMA_EOL with #pragma redefine_extname and -fdirectives-only
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47254 --- Comment #4 from Manuel López-Ibáñez manu at gcc dot gnu.org --- (In reply to Shakthi Kannan from comment #3) Sorry, I don't have a gcc.gnu.org account. Can you please change the status to Confirmed? It is easy to get one and it is needed for commit access: http://gcc.gnu.org/svnwrite.html#authenticated so don't be shy! ;-) NEW means confirmed, so done!
[Bug c++/56782] [4.8/4.9 Regression] Regression with empty pack expansions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56782 Dodji Seketeli dodji at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #4 from Dodji Seketeli dodji at gcc dot gnu.org --- This has been committed to trunk and 4.8.
[Bug target/57310] New: [4.7/4.8/4.9 Regression] segfault with -O2 or higher on x86_64-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57310 Bug ID: 57310 Summary: [4.7/4.8/4.9 Regression] segfault with -O2 or higher on x86_64-linux-gnu Product: gcc Version: 4.7.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: doko at gcc dot gnu.org seen with 4.7, 4.8 and trunk on x86_64-linux-gnu, works on i585-linux-gnu, and arm-linux-gnueabi*, works with 4.6. seen with both libffi 3.0.10 and 3.0.13. $ gcc-4.8 -O2 ffi-test.c -lffi ./a.out Segmentation fault $ gcc-4.8 -O1 ffi-test.c -lffi ./a.out (ok) $ gcc-4.8 -O2 -fno-align-functions -fno-align-jumps -fno-align-labels -fno-align-loops -fno-caller-saves -fno-crossjumping -fno-cse-follow-jumps -fno-devirtualize -fno-expensive-optimizations -fno-gcse -fno-hoist-adjacent-loads -fno-inline-small-functions -fno-ipa-cp -fno-ipa-sra -fno-optimize-register-move -fno-optimize-sibling-calls -fno-optimize-strlen -fno-peephole2 -fno-regmove -fno-reorder-blocks -fno-reorder-functions -fno-rerun-cse-after-loop -fno-schedule-insns2 -fno-strict-aliasing -fno-thread-jumps -fno-tree-builtin-call-dce -fno-tree-pre -fno-tree-switch-conversion -fno-tree-tail-merge -fno-tree-vrp ffi-test.c -lffi ./a.out Segmentation fault $ gcc-4.8 -m32 -O2 ffi-test.c -lffi ./a.out (ok) #include ffi.h extern void abort (void); int myfn(const char *s) { return __builtin_strlen(s); } int main() { ffi_cif cif; ffi_type *args[1]; void *values[1]; char *s; int rc; /* Initialize the argument info vectors */ args[0] = ffi_type_pointer; values[0] = s; /* Initialize the cif */ if (ffi_prep_cif(cif, FFI_DEFAULT_ABI, 1, ffi_type_sint, args) == FFI_OK) { s = Hello World!; ffi_call(cif, FFI_FN(myfn), rc, values); /* rc now holds the result of the call to puts */ if (rc != 12) abort(); /* values holds a pointer to the function's arg, so to call puts() again all we need to do is change the value of s */ s = This is cool!; ffi_call(cif, FFI_FN(myfn), rc, values); if (rc != 13) abort(); } return 0; }
[Bug rtl-optimization/23684] Combine stores for non strict alignment targets
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23684 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org --- This is related to PR22141 . But it caused performance regressions on ppc, which is why it hasn't been installed. If there are ideas how to tune that, I can try to ressurrect the patch.
[Bug c++/57311] New: Conversion operator can be overloaded with itself by using typedef
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57311 Bug ID: 57311 Summary: Conversion operator can be overloaded with itself by using typedef Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: accepts-invalid Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org This should be rejected: typedef int Int; templateclass T, class U struct is_same { enum { value = 0 }; }; templateclass T struct is_sameT, T { enum { value = 1 }; }; struct X { operator int() const { return 0; } operator Int() const { return 0; } }; static_assert( is_sameInt, int::value, Int is int );
[Bug preprocessor/51259] no escape on control characters on linemarker lines
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51259 Shakthi Kannan skannan at redhat dot com changed: What|Removed |Added CC||skannan at redhat dot com --- Comment #1 from Shakthi Kannan skannan at redhat dot com --- Opening the .c file in vim, or Emacs shows the control characters. Doing a hexdump on the output of 'gcc -E' does show the octal value in the output ('001'). For example: $ gcc -E inc.c gcc.e $ hexdump -c gcc.e 000 # 1 i n c . c \n # 1 010 c o m m a n d - l i n e 020 \n # 1 i n c . c \n # 1 030 a a 001 b b . h 1 \n i n t 040 m a i n ( ) { } \n # 1 050 i n c . c 2 \n 05a
[Bug c++/57311] Conversion operator can be overloaded with itself by using typedef
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57311 --- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org --- If the definitions are not inline G++ spots the problems: typedef int Int; struct X { operator int() const; operator Int() const; }; X::operator int() const { return 0; } X::operator Int() const { return 0; } x.cc:10:1: error: redefinition of 'X::operator Int() const' X::operator Int() const { return 0; } ^ x.cc:9:1: error: 'X::operator int() const' previously defined here X::operator int() const { return 0; } ^
[Bug target/57310] [4.7/4.8/4.9 Regression] segfault with -O2 or higher on x86_64-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57310 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-17 Target Milestone|--- |4.7.4 Ever confirmed|0 |1 --- Comment #1 from Richard Biener rguenth at gcc dot gnu.org --- Confirmed.
[Bug preprocessor/51776] fixincludes hacks around a C++ deficiency
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51776 Shakthi Kannan skannan at redhat dot com changed: What|Removed |Added CC||skannan at redhat dot com --- Comment #4 from Shakthi Kannan skannan at redhat dot com --- The depends bug 53528 Support C++11 generalized attributes has been closed, and applied to trunk (4.8).
[Bug c++/57312] New: missing 'template' keyword not diagnosed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57312 Bug ID: 57312 Summary: missing 'template' keyword not diagnosed Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: accepts-invalid Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org This should be rejected: templateclass T struct A { templateclass U void send(int i) { } }; templateclass T struct B { templateclass U void send(int i) { a.sendU(i); } // ^ missing template AT a; }; int main() { Bint b; b.sendchar(0); } Clang rejects this.
[Bug target/57293] [4.8/4.9 Regression] not needed frame pointers on IA-32 (performance regression?)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57293 Fanael fanael4 at gmail dot com changed: What|Removed |Added Target|i686-w64-mingw32|i?86-*-* --- Comment #3 from Fanael fanael4 at gmail dot com --- Reproduced on x86_64-unknown-linux-gnu (*) with -m32, thus not related to MinGW itself. (*) $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: /build/gcc-multilib/src/gcc-4.8-20130502/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --enable-gnu-unique-object --enable-linker-build-id --enable-cloog-backend=isl --disable-cloog-version-check --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --with-linker-hash-style=gnu --disable-install-libiberty --enable-multilib --disable-libssp --disable-werror --enable-checking=release Thread model: posix gcc version 4.8.0 20130502 (prerelease) (GCC)
[Bug preprocessor/49928] Only workaround for -Wundef is defined(Macro) Macro, but it is undefined behavior?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49928 Shakthi Kannan skannan at redhat dot com changed: What|Removed |Added CC||skannan at redhat dot com --- Comment #1 from Shakthi Kannan skannan at redhat dot com --- Confirmed. $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --disable-build-with-cxx --disable-build-poststage1-with-cxx --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 4.7.2 20121109 (Red Hat 4.7.2-8) (GCC)
[Bug c++/57312] missing 'template' keyword not diagnosed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57312 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com --- Variants of the same issue, really. *** This bug has been marked as a duplicate of bug 11814 ***
[Bug c++/11814] Code with missing template keyword wrongly accepted
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11814 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added CC||redi at gcc dot gnu.org --- Comment #14 from Paolo Carlini paolo.carlini at oracle dot com --- *** Bug 57312 has been marked as a duplicate of this bug. ***
[Bug c++/51908] [C++11] ICE in cp_parser_abort_tentative_parse with decltype and variable template arguments
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51908 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Keywords||rejects-valid Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-17 Ever confirmed|0 |1
[Bug c++/57312] missing 'template' keyword not diagnosed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57312 --- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org --- Thanks, Paolo, I thought there was an existing PR but failed to find it.
[Bug regression/57313] New: [4.9 Regression]: gcc.dg/binop-xor3.c scan-tree-dump-times
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57313 Bug ID: 57313 Summary: [4.9 Regression]: gcc.dg/binop-xor3.c scan-tree-dump-times Product: gcc Version: 4.9.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: regression Assignee: unassigned at gcc dot gnu.org Reporter: hp at gcc dot gnu.org CC: glisse at gcc dot gnu.org Host: x86_64-unknown-linux-gnu Target: cris-axis-elf Created attachment 30139 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30139action=edit binop-xor3.c.165t.optimized This test previously passed, now it fails. A patch in the revision range (last_known_working:first_known_failing) 198890:198899 exposed or caused this regression. Since then it fails as follows: Running /tmp/hpautotest-gcc0/gcc/gcc/testsuite/gcc.dg/dg.exp ... FAIL: gcc.dg/binop-xor3.c scan-tree-dump-times optimized \\^ 1 The files binop-xor3.s and binop-xor3.c.165t.optimized are attached. Author of the most suspect patch (having touched the actual test-case and related code) in revision range CC:ed. Apparently, cris-elf is just one of many targets for which this test now fails; I guess half of them regressed but x86_64 and i686 (and ia64, sh4, spu), as seen on gcc-testresults@ since then: s390-ibm-linux-gnu http://gcc.gnu.org/ml/gcc-testresults/2013-05/msg01643.html, m68k-unknown-linux-gnu http://gcc.gnu.org/ml/gcc-testresults/2013-05/msg01593.html, powerpc-ibm-aix7.1.0.0 http://gcc.gnu.org/ml/gcc-testresults/2013-05/msg01567.html, powerpc64-unknown-linux-gnu http://gcc.gnu.org/ml/gcc-testresults/2013-05/msg01709.html.
[Bug regression/57313] [4.9 Regression]: gcc.dg/binop-xor3.c scan-tree-dump-times
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57313 --- Comment #1 from Hans-Peter Nilsson hp at gcc dot gnu.org --- Created attachment 30140 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30140action=edit binop-xor3.s
[Bug target/57310] [4.7/4.8/4.9 Regression] segfault with -O2 or higher on x86_64-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57310 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org --- Doesn't look like any kind of regression to me, seems on most architectures libffi behaved this way always. For the return value from ffi_call, most architectures sign or zero extend the sub-word values into word type (32-bit for 32-bit arches, 64-bit for 64-bit arches) and store the word. Looked as far back as libffi in gcc 3.2 and 3.3 for this. So your testcase is invalid in that regard, as you are passing rc, where rc is int, not long. But there are testcases doing this in the libffi testsuite it seems, while others for ffi_type_sint and similar properly use address of ffi_arg value.
[Bug regression/57313] [4.9 Regression]: gcc.dg/binop-xor3.c scan-tree-dump-times
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57313 --- Comment #2 from Marc Glisse glisse at gcc dot gnu.org --- It was xfailed before. It started passing as a side effect of r198893 so I removed the xfail, but apparently it now depends on the platform :-( What do you get with -O -fdump-tree-original?
[Bug target/57309] Spill code degrades vectorized loop for 437.leslie3d on PPC64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57309 --- Comment #2 from Bill Schmidt wschmidt at gcc dot gnu.org --- (In reply to Richard Biener from comment #1) Can you isolate a testcase for the worst loop? Not yet. It's one of these horrible gargantuan functions (leslie3d is one big file and fluxi, fluxj, fluxk are all quite large functions) and the issue appears to involve global register allocation, so it will be sensitive to control flow changes. Not an easy thing to attack with delta, either. Peter is planning to look at this at some point, and I have a bunch of dump files saved away to help with the analysis. Not sure what else to do for now.
[Bug regression/57313] [4.9 Regression]: gcc.dg/binop-xor3.c scan-tree-dump-times
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57313 --- Comment #3 from Marc Glisse glisse at gcc dot gnu.org --- (In reply to Marc Glisse from comment #2) What do you get with -O -fdump-tree-original? I tried, and the transformation doesn't happen at all (I was wondering if it might be undone by another pass later). See http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00981.html for more discussion.
[Bug tree-optimization/57051] Optimization regression in 4.8.0 from 4.7.2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57051 --- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org --- Author: jakub Date: Fri May 17 08:31:32 2013 New Revision: 199002 URL: http://gcc.gnu.org/viewcvs?rev=199002root=gccview=rev Log: PR tree-optimization/57051 * fold-const.c (const_binop) case VEC_LSHIFT_EXPR, case VEC_RSHIFT_EXPR: Fix BYTES_BIG_ENDIAN handling. Modified: trunk/gcc/ChangeLog trunk/gcc/fold-const.c Author: jakub Date: Fri May 17 08:52:36 2013 New Revision: 199004 URL: http://gcc.gnu.org/viewcvs?rev=199004root=gccview=rev Log: PR tree-optimization/57051 * fold-const.c (const_binop) case VEC_LSHIFT_EXPR, case VEC_RSHIFT_EXPR: Fix BYTES_BIG_ENDIAN handling. Modified: branches/gcc-4_8-branch/gcc/ChangeLog branches/gcc-4_8-branch/gcc/fold-const.c
[Bug c++/18126] sizeof compound-literal not parsed correctly
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18126 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |4.9.0 --- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com --- Fixed for 4.9.0.
[Bug rtl-optimization/57067] Missing control flow edges for setjmp/longjmp
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57067 gretay at gcc dot gnu.org changed: What|Removed |Added CC||gretay at gcc dot gnu.org --- Comment #6 from gretay at gcc dot gnu.org --- I tried the proposed patch (after fixing a typo: calls_setjmp / calls_stjmp). It causes an ICE on the attached testcase (and some regressions): $ /work/apr-builds/pr57067/install/bin/arm-none-eabi-gcc -O1 -mcpu=cortex-a15 pr57067.c -o pr57067.elf pr57067.c: In function 'main': pr57067.c:18:7: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default] p = malloc (0x1000); ^ pr57067.c:22:7: warning: incompatible implicit declaration of built-in function 'printf' [enabled by default] printf (\nFAIL\n); ^ pr57067.c:23:7: warning: incompatible implicit declaration of built-in function 'exit' [enabled by default] exit (1); ^ pr57067.c:32:3: warning: incompatible implicit declaration of built-in function 'printf' [enabled by default] printf (\nPASS\n); ^ pr57067.c:34:1: error: in basic block 2: } ^ pr57067.c:34:1: error: flow control insn inside a basic block (call_insn 8 7 9 2 (parallel [ (set (reg:SI 0 r0) (call (mem:SI (symbol_ref:SI (malloc) [flags 0x41] function_decl 0x7f0cc7362900 malloc) [0 __builtin_malloc S4 A32]) (const_int 0 [0]))) (use (const_int 0 [0])) (clobber (reg:SI 14 lr)) ]) pr57067.c:18 -1 (expr_list:REG_EH_REGION (const_int 0 [0]) (nil)) (expr_list:REG_CFA_WINDOW_SAVE (use (reg:SI 0 r0)) (nil))) pr57067.c:34:1: internal compiler error: in rtl_verify_flow_info_1, at cfgrtl.c:2321 0x7cc383 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /work/local-checkouts/gcc-fsf/gcc/rtl-error.c:109 0x52ed65 rtl_verify_flow_info_1 /work/local-checkouts/gcc-fsf/gcc/cfgrtl.c:2321 0x52efb2 rtl_verify_flow_info /work/local-checkouts/gcc-fsf/gcc/cfgrtl.c:2345 0x51ef49 verify_flow_info() /work/local-checkouts/gcc-fsf/gcc/cfghooks.c:258 0xc02464 try_optimize_cfg /work/local-checkouts/gcc-fsf/gcc/cfgcleanup.c:2812 0xc02464 cleanup_cfg(int) /work/local-checkouts/gcc-fsf/gcc/cfgcleanup.c:2974 0x51c7dd gimple_expand_cfg /work/local-checkouts/gcc-fsf/gcc/cfgexpand.c:4781
[Bug fortran/57297] FAIL: gfortran.dg/select_type_4.f90 -O2 execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57297 --- Comment #7 from gretay at gcc dot gnu.org --- (In reply to Mikael Morin from comment #5) Created attachment 30138 [details] frontend patch, second try This variant reduces the amount of VIEW_CONVERT_EXPR, which should make the code less confusing downstream. This patch fixes the failure in this test, but causes ICE in some fortran tests on qemu for arm-none-eabi. For example: FAIL: gfortran.dg/auto_dealloc_2.f90 -O (internal compiler error) Executing on host: /work/apr-builds/pr57297/fortran-fix2/arm-none-eabi/gcc2/gcc/testsuite/gfortran1/../../gfortran -B/work/apr-builds/pr57297/fortran-fix2/arm-none-eabi/gcc2/gcc/testsuite/gfortran1/../../ -B/work/apr-builds/pr57297fortran-fix2/arm-none-eabi/gcc2/arm-none-eabi/./libgfortran/ /work/local-checkouts/gcc-git/gcc/testsuite/gfortran.dg/auto_dealloc_2.f90 -fno-diagnostics-show-caret -O -fdump-tree-original -S -specs=rdimon.specs -Wa,-mno-warn-deprecated-o auto_dealloc_2.s(timeout = 60) /work/local-checkouts/gcc-git/gcc/testsuite/gfortran.dg/auto_dealloc_2.f90: In function 'init': /work/local-checkouts/gcc-git/gcc/testsuite/gfortran.dgauto_dealloc_2.f90:21:0: internal compiler error: Segmentation fault 0x886585 crash_signal /work/local-checkouts/gcc-git/gcc/toplev.c:332 0x4c1b2e structure_alloc_comps /work/local-checkouts/gcc-git/gcc/fortran/trans-array.c:7444 0x4df6e5 init_intent_out_dt /work/local-checkouts/gcc-git/gcc/fortran/trans-decl.c:3519 0x4df6e5 gfc_trans_deferred_vars(gfc_symbol*, gfc_wrapped_block*) /work/local-checkouts/gcc-git/gcc/fortran/trans-decl.c:3631 0x4e2c7e gfc_generate_function_code(gfc_namespace*) /work/local-checkouts/gcc-git/gcc/fortran/trans-decl.c:5506 0x4e2ef7 gfc_generate_contained_functions /work/local-checkouts/gcc-git/gcc/fortran/trans-decl.c:4576 0x4e2ef7 gfc_generate_function_code(gfc_namespace*) /work/local-checkouts/gcc-git/gcc/fortran/trans-decl.c:5379 0x476172 translate_all_program_units /work/local-checkouts/gcc-git/gcc/fortran/parse.c:4469 0x476172 gfc_parse_file() /work/local-checkouts/gcc-git/gcc/fortran/parse.c:4666 0x4b48a5 gfc_be_parse_file /work/local-checkouts/gcc-git/gcc/fortran/f95-lang.c:189
[Bug c++/57314] New: [SFINAE] GCC istantiates default-arguments for member-template-functions of classtemplates bevore allowed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57314 Bug ID: 57314 Summary: [SFINAE] GCC istantiates default-arguments for member-template-functions of classtemplates bevore allowed Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: florian.we...@sfz-bw.de GCC rejects the following code: #include type_traits templatebool bar struct foo{ templatetypename T, typename = typename std::enable_ifbar::type void fun(T){} }; int main(){ foofalse var{}; } The error claims: “error: no type named 'type' in 'struct std::enable_iffalse, void”. Which is certainly true but according to my reading of the standard perfectly OK, because the default-arguments of templates must not be instantiated before usage: Section 14.7.1: “...The implicit instantiation of a class template specialization causes the implicit instantiation of the declarations, but not of the definitions or default arguments, of the class member functions, member classes, scoped member enumerations, static data members and member templates;...“
[Bug tree-optimization/57315] New: LTO and/or vectorizer performance regression on salsa20 core, 4.7-4.8
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57315 Bug ID: 57315 Summary: LTO and/or vectorizer performance regression on salsa20 core, 4.7-4.8 Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zackw at panix dot com I'm seeing a significant performance regression from 4.7 to 4.8 (targeting x86-64) on the salsa20 core function (this is a stream cipher). Repro instructions: $ git clone git://github.com/zackw/rngstats.git # ... $ make -s cipher-test CC=gcc-4.7 ./cipher-test /dev/null ./cipher-test KAT: aes128... ok KAT: aes256... ok KAT: arc4... ok KAT: isaac64... ok KAT: salsa20_128... ok KAT: salsa20_256... ok TIME: aes128... 2000 keys, 3.47834s - 574.987 keys/s TIME: aes256... 2000 keys, 3.62452s - 551.797 keys/s TIME:arc4... 2000 keys, 2.21746s - 901.933 keys/s TIME: isaac64... 2000 keys, 2.03467s - 982.962 keys/s TIME: salsa20_128... 2000 keys, 2.31960s - 862.217 keys/s TIME: salsa20_256... 2000 keys, 2.31932s - 862.320 keys/s $ make -s clean cipher-test CC=gcc-4.8 ./cipher-test /dev/null ./cipher-test KAT: aes128... ok KAT: aes256... ok KAT: arc4... ok KAT: isaac64... ok KAT: salsa20_128... ok KAT: salsa20_256... ok TIME: aes128... 2000 keys, 2.49224s - 802.491 keys/s TIME: aes256... 2000 keys, 3.62372s - 551.919 keys/s TIME:arc4... 2000 keys, 2.22794s - 897.689 keys/s TIME: isaac64... 2000 keys, 2.05087s - 975.194 keys/s TIME: salsa20_128... 2000 keys, 3.53085s - 566.436 keys/s TIME: salsa20_256... 2000 keys, 2.53003s - 790.505 keys/s The regression shows in the last two TIME: lines for each build. The relevant code is probably in ciphers/salsa20.c, or else in worker.c. Note that there are other programs in this repository, and they require unusual libraries to build. I recommend you do not attempt a make all, and if you get errors, try commenting out the CFLAGS.mpi and LIBS.mpi lines in the Makefile.
[Bug testsuite/57313] [4.9 Regression]: gcc.dg/binop-xor3.c scan-tree-dump-times
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57313 Marc Glisse glisse at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #4 from Marc Glisse glisse at gcc dot gnu.org --- r199020 | glisse | 2013-05-17 17:31:02 +0200 (Fri, 17 May 2013) | 6 lines 2013-05-17 Marc Glisse marc.gli...@inria.fr PR testsuite/57313 * gcc.dg/binop-xor3.c: Restrict to platforms known to work (x86).
[Bug target/49146] segv from libgcc_s when raising an exception, or unwinding stack with backtrace with ms_abi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49146 Richard Henderson rth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.2 --- Comment #8 from Richard Henderson rth at gcc dot gnu.org --- http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01001.html Fixed for mainline; just missed the 4.8.1 cutoff.
[Bug rtl-optimization/57304] [4.9 Regression] Revision 198896 segfaults building cpu2000 benchmark 176.gcc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57304 --- Comment #5 from Pat Haugen pthaugen at gcc dot gnu.org --- The patch fixes the benchmark failure as well.
[Bug sanitizer/57316] New: [4.8 regresion] build failure in libsanitizer
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57316 Bug ID: 57316 Summary: [4.8 regresion] build failure in libsanitizer Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: PHHargrove at lbl dot gov CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org On the same system where I reported bug 55989, I am now experiencing a build failure in libsanitizer in the released 4.8.0. As with that earlier bug, libsanitizer is trying to use something low-level from Linux that did not exist in older kernel versions. In this case the exit_group systemcall. I believe a colleague has seen the same problem in 4.8.1 snapshots. -Paul libtool: compile: /home/pcp1/phargrov/data1/GCC/gcc-4.8.0/BLD/./gcc/xgcc -shared-libgcc -B/home/pcp1/phargrov/data1/GCC/gcc-4.8.0/BLD/./gcc -nostdinc++ -L/home/pcp1/phargrov/data1/GCC/gcc-4.8.0/BLD/i686-pc-linux-gnu/libstdc++-v3/src -L/home/pcp1/phargrov/data1/GCC/gcc-4.8.0/BLD/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/usr/local/i686-pc-linux-gnu/bin/ -B/usr/local/i686-pc-linux-gnu/lib/ -isystem /usr/local/i686-pc-linux-gnu/include -isystem /usr/local/i686-pc-linux-gnu/sys-include -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I. -I../../../../libsanitizer/sanitizer_common -I ../../../../libsanitizer/include -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -I../../libstdc++-v3/include -I../../libstdc++-v3/include/i686-pc-linux-gnu -I../../../../libsanitizer/../libstdc++-v3/libsupc++ -g -O2 -D_GNU_SOURCE -MT sanitizer_linux.lo -MD -MP -MF .deps/sanitizer_linux.Tpo -c ../../../../libsanitizer/sanitizer_common/sanitizer_linux.cc -fPIC -DPIC -o .libs/sanitizer_linux.o ../../../../libsanitizer/sanitizer_common/sanitizer_linux.cc: In function 'void __sanitizer::internal__exit(int)': ../../../../libsanitizer/sanitizer_common/sanitizer_linux.cc:142:11: error: '__NR_exit_group' was not declared in this scope syscall(__NR_exit_group, exitcode); ^ make[4]: *** [sanitizer_linux.lo] Error 1
[Bug tree-optimization/57294] [4.9 Regression] ice in remove_described_reference
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57294 Martin Jambor jamborm at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jamborm at gcc dot gnu.org --- Comment #5 from Martin Jambor jamborm at gcc dot gnu.org --- Actually, the interactions are a bit more convoluted, what happens is the following: 1. Early passes are run on function baz, references are computed for that function. 2. Early passes are run on function bar. IPA-SRA triggers and changes the call statement in function baz. This means that the recorded pointer to the statement in the symbol table is stale. 3. During inlining we ask ipa_find_reference to find the reference corresponding to the correct statement and of course do not get anything, which triggers an assert. I've confirmed this is the case by putting a call to cgraph_rebuild_references into convert_callers_for_node and it fixes the issue. But of course that could be quite expensive. I'll revisit my efforts to remove IPA-SRA completely, this is another piece of motivation but I am not entirely sure what to do about this in the short term. Probably update references in IPA-SRA.
[Bug c++/57317] New: [4.8/4.9] Regression bogus and unsuppressable warning: 'YYY' has a base 'ZZZ' whose type uses the anonymous namespace
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57317 Bug ID: 57317 Summary: [4.8/4.9] Regression bogus and unsuppressable warning: 'YYY' has a base 'ZZZ' whose type uses the anonymous namespace Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ppluzhnikov at google dot com Google reference: b/9004062 Quite similar, but not identical to PR 56641. Test case: // --- cut --- # 1 t.h template typename T struct integral_c { static const T value = 0; }; struct is_reference:integral_c bool { }; template class struct is_function_ptr_helper { }; template bool struct is_function_chooser; template struct is_function_chooser 0 { template typename T struct result_:is_function_ptr_helper T * { }; }; template typename T struct is_function_impl:is_function_chooser is_reference::value ::result_ T { }; #5 t.cc namespace { class NonCloneable; void fn1 () { is_function_impl NonCloneable i; } } // --- cut --- Using current (r199023) trunk: g++ -c t.ii t.h: In instantiation of 'struct is_function_chooserfalse::result_{anonymous}::NonCloneable': t.h:13:32: required from 'struct is_function_impl{anonymous}::NonCloneable' t.cc:10:39: required from here t.h:10:34: warning: 'is_function_chooserfalse::result_{anonymous}::NonCloneable' has a base 'is_function_ptr_helper{anonymous}::NonCloneable*' whose type uses the anonymous namespace [enabled by default] Richard Smiths says: I think GCC is upset that a type defined outside of the main source file has a template argument that has internal linkage. In principle, that's a valuable diagnostic: it's trying to tell you that every time you include that header, you're going to get a different type, and you're likely to have an ODR diagnostic. However, in this case, it's a false positive, because this happened while instantiating a template from the main source file (with a type defined in the main source file, no less). In addition, this warning isn't suppressable via -Wno-... parameter.
[Bug c++/57317] [4.8/4.9] Regression bogus and unsuppressable warning: 'YYY' has a base 'ZZZ' whose type uses the anonymous namespace
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57317 --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com --- Irrespective of the primary issue, in general giving names to warnings is a good idea: what about other compilers?
[Bug target/45359] poor -march=native choices for VIA C7 Esther processors
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45359 Uroš Bizjak ubizjak at gmail dot com changed: What|Removed |Added Status|WAITING |RESOLVED URL||http://gcc.gnu.org/ml/gcc-p ||atches/2013-05/msg00941.htm ||l Resolution|--- |FIXED Target Milestone|--- |4.7.4 --- Comment #7 from Uroš Bizjak ubizjak at gmail dot com --- Implemented for 4.7.4, 4.8.1 and mainline by: Author: uros Date: Thu May 16 19:53:36 2013 New Revision: 198987 URL: http://gcc.gnu.org/viewcvs?rev=198987root=gccview=rev Log: PR target/45359 PR target/46396 * config/i386/driver-i386.c (host_detect_local_cpu): Detect VIA/Centaur processors and determine their cache parameters using detect_caches_amd. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/driver-i386.c Author: uros Date: Thu May 16 21:41:26 2013 New Revision: 198989 URL: http://gcc.gnu.org/viewcvs?rev=198989root=gccview=rev Log: * config/i386/driver-i386.c (host_detect_local_cpu): Determine cache parameters using detect_caches_amd also for CYRIX, NSC and TM2 signatures. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/driver-i386.c Author: uros Date: Fri May 17 15:06:36 2013 New Revision: 199017 URL: http://gcc.gnu.org/viewcvs?rev=199017root=gccview=rev Log: Backport from mainline 2013-05-16 Uros Bizjak ubiz...@gmail.com * config/i386/driver-i386.c (host_detect_local_cpu): Determine cache parameters using detect_caches_amd also for CYRIX, NSC and TM2 signatures. 2013-05-16 Uros Bizjak ubiz...@gmail.com Dzianis Kahanovich maha...@eu.by PR target/45359 PR target/46396 * config/i386/driver-i386.c (host_detect_local_cpu): Detect VIA/Centaur processors and determine their cache parameters using detect_caches_amd. 2013-05-15 Uros Bizjak ubiz...@gmail.com * config/i386/i386.c (ix86_option_override_internal): Update processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets. * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead of TARGET_3DNOW. (*prefetch_3dnow): Enable for TARGET_PRFCHW only. Modified: branches/gcc-4_8-branch/gcc/ChangeLog branches/gcc-4_8-branch/gcc/config/i386/driver-i386.c branches/gcc-4_8-branch/gcc/config/i386/i386.c branches/gcc-4_8-branch/gcc/config/i386/i386.md Author: uros Date: Fri May 17 17:50:11 2013 New Revision: 199026 URL: http://gcc.gnu.org/viewcvs?rev=199026root=gccview=rev Log: Backport from mainline 2013-05-16 Uros Bizjak ubiz...@gmail.com * config/i386/driver-i386.c (host_detect_local_cpu): Determine cache parameters using detect_caches_amd also for CYRIX, NSC and TM2 signatures. 2013-05-16 Uros Bizjak ubiz...@gmail.com Dzianis Kahanovich maha...@eu.by PR target/45359 PR target/46396 * config/i386/driver-i386.c (host_detect_local_cpu): Detect VIA/Centaur processors and determine their cache parameters using detect_caches_amd. 2013-05-15 Uros Bizjak ubiz...@gmail.com * config/i386/i386.c (ix86_option_override_internal): Add PTA_POPCNT to corei7 entry. Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/config/i386/driver-i386.c branches/gcc-4_7-branch/gcc/config/i386/i386.c
[Bug target/46396] gcc not detect caches for VIA CPUs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46396 Uroš Bizjak ubizjak at gmail dot com changed: What|Removed |Added Target||x86 Status|UNCONFIRMED |RESOLVED URL||http://gcc.gnu.org/ml/gcc-p ||atches/2013-05/msg00941.htm ||l Version|unknown |4.5.1 Resolution|--- |FIXED Target Milestone|--- |4.7.4 --- Comment #3 from Uroš Bizjak ubizjak at gmail dot com --- Implemented for 4.7.4, 4.8.1 and mainline by: Author: uros Date: Thu May 16 19:53:36 2013 New Revision: 198987 URL: http://gcc.gnu.org/viewcvs?rev=198987root=gccview=rev Log: PR target/45359 PR target/46396 * config/i386/driver-i386.c (host_detect_local_cpu): Detect VIA/Centaur processors and determine their cache parameters using detect_caches_amd. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/driver-i386.c Author: uros Date: Thu May 16 21:41:26 2013 New Revision: 198989 URL: http://gcc.gnu.org/viewcvs?rev=198989root=gccview=rev Log: * config/i386/driver-i386.c (host_detect_local_cpu): Determine cache parameters using detect_caches_amd also for CYRIX, NSC and TM2 signatures. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/driver-i386.c Author: uros Date: Fri May 17 15:06:36 2013 New Revision: 199017 URL: http://gcc.gnu.org/viewcvs?rev=199017root=gccview=rev Log: Backport from mainline 2013-05-16 Uros Bizjak ubiz...@gmail.com * config/i386/driver-i386.c (host_detect_local_cpu): Determine cache parameters using detect_caches_amd also for CYRIX, NSC and TM2 signatures. 2013-05-16 Uros Bizjak ubiz...@gmail.com Dzianis Kahanovich maha...@eu.by PR target/45359 PR target/46396 * config/i386/driver-i386.c (host_detect_local_cpu): Detect VIA/Centaur processors and determine their cache parameters using detect_caches_amd. 2013-05-15 Uros Bizjak ubiz...@gmail.com * config/i386/i386.c (ix86_option_override_internal): Update processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets. * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead of TARGET_3DNOW. (*prefetch_3dnow): Enable for TARGET_PRFCHW only. Modified: branches/gcc-4_8-branch/gcc/ChangeLog branches/gcc-4_8-branch/gcc/config/i386/driver-i386.c branches/gcc-4_8-branch/gcc/config/i386/i386.c branches/gcc-4_8-branch/gcc/config/i386/i386.md Author: uros Date: Fri May 17 17:50:11 2013 New Revision: 199026 URL: http://gcc.gnu.org/viewcvs?rev=199026root=gccview=rev Log: Backport from mainline 2013-05-16 Uros Bizjak ubiz...@gmail.com * config/i386/driver-i386.c (host_detect_local_cpu): Determine cache parameters using detect_caches_amd also for CYRIX, NSC and TM2 signatures. 2013-05-16 Uros Bizjak ubiz...@gmail.com Dzianis Kahanovich maha...@eu.by PR target/45359 PR target/46396 * config/i386/driver-i386.c (host_detect_local_cpu): Detect VIA/Centaur processors and determine their cache parameters using detect_caches_amd. 2013-05-15 Uros Bizjak ubiz...@gmail.com * config/i386/i386.c (ix86_option_override_internal): Add PTA_POPCNT to corei7 entry. Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/config/i386/driver-i386.c branches/gcc-4_7-branch/gcc/config/i386/i386.c
[Bug rtl-optimization/57304] [4.9 Regression] Revision 198896 segfaults building cpu2000 benchmark 176.gcc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57304 mrs at gcc dot gnu.org mrs at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P1 Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #6 from mrs at gcc dot gnu.org mrs at gcc dot gnu.org --- Committed revision 199029.
[Bug tree-optimization/57318] New: optimizer takes several seconds on nested loops
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57318 Bug ID: 57318 Summary: optimizer takes several seconds on nested loops Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: dhazeghi at yahoo dot com Current gcc trunk takes 5 seconds to compile this testcase at -O2 or higher optimization level on x86_64-linux-gnu (2.8GHZ Intel i7). This was distilled from larger program which appears to hang gcc, although I suspect it is actually just extremely slow. This behavior is not present in 4.8 and older versions. $ gcc-trunk -v gcc version 4.9.0 20130517 (experimental) [trunk revision 199006] (GCC) $ gcc-trunk -Os hang.c $ time gcc-4.8 -O2 hang.c real0m0.101s user0m0.072s sys0m0.016s $ time gcc-trunk -O2 hang.c real0m5.289s user0m5.232s sys0m0.024s --- struct S0 { volatile int f0; short f1; } u; int a, b; static struct S0 v; int main () { for (a = 0; a = 9; a++) { for (b = 0; b = 9; b++) for (u.f1 = 0; u.f1 = 9; u.f1++) v.f0; } }
[Bug c++/57319] New: [4.8/4.9] Regression: bogus defaulted move assignment for ... calls a non-trivial move assignment operator for virtual base ...
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57319 Bug ID: 57319 Summary: [4.8/4.9] Regression: bogus defaulted move assignment for ... calls a non-trivial move assignment operator for virtual base ... Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ppluzhnikov at google dot com Google reference: b/9004260 Test case: class A { }; class B: virtual A { }; class C: virtual B { }; class D: C { void operator= (D ); }; Using current trunk (@r199023): g++ -c t.ii -std=c++11 t.ii:3:7: warning: defaulted move assignment for ‘C’ calls a non-trivial move assignment operator for virtual base ‘B’ [-Wvirtual-move-assign] class C: virtual B { }; ^ Richard Smith writes: The problem is that a defaulted move assignment for a class with two inheritance paths to a virtual base may move-assign that virtual base multiple times (and thus may lose state). However, this particular case *isn't* the problematic case, because (a) this sample code should not trigger the definition of C's move assignment operator, and (b) there is only one inheritance path from C to B, so it won't be move-assigned multiple times, and (c) the issue isn't with *non-trivial* move assignments, it's with *user-provided* move-assignments (for the virtual base or any of its subobjects), which B does not have. = This is a false positive.
[Bug tree-optimization/57318] optimizer takes several seconds on nested loops
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57318 Marc Glisse glisse at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-17 Ever confirmed|0 |1 --- Comment #1 from Marc Glisse glisse at gcc dot gnu.org --- All the time is spent in sched2, but the first strange thing is cunroll going wild at -O2 (1000 iterations unrolled...).
[Bug middle-end/57276] Waste work in cgraph_edge_brings_all_agg_vals_for_node()
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57276 Martin Jambor jamborm at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #4 from Martin Jambor jamborm at gcc dot gnu.org --- Author: jamborm Date: Fri May 17 21:12:34 2013 New Revision: 199035 URL: http://gcc.gnu.org/viewcvs?rev=199035root=gccview=rev Log: 2013-05-17 Po-Chun Chang pcha...@cs.wisc.edu Martin Jambor mjam...@suse.cz PR middle-end/57276 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a value that corresponds to the given aggval is found in values vector. Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-cp.c
[Bug rtl-optimization/57320] New: Shrink-wrapping breaks graph dumping
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57320 Bug ID: 57320 Summary: Shrink-wrapping breaks graph dumping Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: steven at gcc dot gnu.org Compiling gcc.target/i386/pad-10.c with: $ ./xgcc -B. -O2 -fomit-frame-pointer -march=atom pad-10.c \ -fdump-rtl-pro_and_epilogue-graph gives: pad-10.c: In function 'foo2': pad-10.c:19:1: internal compiler error: in pre_and_rev_post_order_compute, at cfganal.c:869 } ^ 0x61dbaa pre_and_rev_post_order_compute(int*, int*, bool) ../../trunk/gcc/cfganal.c:869 0xd28d21 draw_cfg_nodes_no_loops ../../trunk/gcc/graph.c:183 0xd28d21 draw_cfg_nodes ../../trunk/gcc/graph.c:265 0xd28d21 print_graph_cfg(char const*, function*) ../../trunk/gcc/graph.c:306 This happens because shrink-wrapping leaves unreachable blocks in the CFG. For a more detailed analysis see: http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01016.html
[Bug rtl-optimization/57320] Shrink-wrapping leaves unreachable blocks in the CFG
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57320 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-17 CC||bernds at gcc dot gnu.org Summary|Shrink-wrapping breaks |Shrink-wrapping leaves |graph dumping |unreachable blocks in the ||CFG Ever confirmed|0 |1 --- Comment #1 from Steven Bosscher steven at gcc dot gnu.org --- Adding Bernd to CC as author of the shrink-wrapping code
[Bug tree-optimization/57294] [4.9 Regression] ice in remove_described_reference
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57294 --- Comment #6 from Jan Hubicka hubicka at ucw dot cz --- I've confirmed this is the case by putting a call to cgraph_rebuild_references into convert_callers_for_node and it fixes the issue. But of course that could be quite expensive. Hmm, it is bit ugly to keep not-up-to-date data around at first place. But perhaps the whole tracking should be simply disabled for early inlining? Honza
[Bug tree-optimization/57289] [4.9 Regression] ICE during 454.calculix compilation with -O3 -flto
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57289 --- Comment #3 from Martin Jambor jamborm at gcc dot gnu.org --- The problem is that the controlled_uses in descriptors of parameters of function prespooles is streamed incorrectly.
[Bug rtl-optimization/57321] New: static function call miscompiled at -Os and above
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57321 Bug ID: 57321 Summary: static function call miscompiled at -Os and above Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: dhazeghi at yahoo dot com The testcase below is miscompiled by gcc 4.8 on x86_64-linux, resulting in a segfault when built with -Os or higher optimization levels. This does not occur with gcc 4.7 or current trunk. The segfault appears on line 8, where p is dereferenced and compared. $ gcc-4.8 -v gcc version 4.8.0 (GCC) $ gcc-4.8 -O1 small.c $ ./a.out $ gcc-4.7 -Os small.c $ ./a.out $ gcc-4.8 -Os small.c $ ./a.out Segmentation fault (core dumped) int a = 1; int *b; int **c; static int bar(int *p) { if (*p == a) { int *i[7][1][9] = {{{ 0 }}}; int **j[1][1][1]; j[0][0][0] = i[0][0][0] ; *b = p != c; } return 0; } void foo(int p, int q) { int i = 0; if (bar (i)) ; } int main() { foo (0, 0); return 0; }
[Bug debug/57257] [4.9 Regression]: FAIL: gcc.dg/pr41345.c fails with -fcompare-debug failure (length)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57257 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |DUPLICATE --- Comment #4 from Steven Bosscher steven at gcc dot gnu.org --- I already ran into this before r197995 with sched1 enabled by default for ix86. *** This bug has been marked as a duplicate of bug 56950 ***
[Bug debug/56950] compare-debug failure for gcc.dg/pr41345.c with fschedule-insns
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56950 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added CC||ubizjak at gmail dot com --- Comment #4 from Steven Bosscher steven at gcc dot gnu.org --- *** Bug 57257 has been marked as a duplicate of this bug. ***
[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 --- Comment #12 from Thomas Koenig tkoenig at gcc dot gnu.org --- Created attachment 30141 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30141action=edit Another patch that doesn't work... I tried to follow the advice in comment#9, but I hit a wall (again). With the attached patch, I hit foo.f90:1:0: error: SSA_NAME_DEF_STMT is wrong program main ^ Expected definition statement: _16 = 1.0e+0; Actual definition statement: _16 = _24; so I suspect I need PHI nodes here. Is this the right approach in general? Am I missing something simple here?
[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 --- Comment #13 from Thomas Koenig tkoenig at gcc dot gnu.org --- Sorry, wrong PR for the comment.
[Bug middle-end/57073] __builtin_powif (-1.0, k) should be optimized to 1.0 - 2.0 * (K%2)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57073 --- Comment #10 from Thomas Koenig tkoenig at gcc dot gnu.org --- Created attachment 30142 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30142action=edit Another patch that doesn't work... This time with the right PR... I tried to follow the advice in comment#9, but I hit a wall (again). With the attached patch, I hit foo.f90:1:0: error: SSA_NAME_DEF_STMT is wrong program main ^ Expected definition statement: _16 = 1.0e+0; Actual definition statement: _16 = _24; so I suspect I need PHI nodes here. Is this the right approach in general? Am I missing something simple here?
[Bug c++/10207] Empty structure initialization fails under C++ (but works under C)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10207 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|NEW |ASSIGNED CC|gcc-bugs at gcc dot gnu.org, | |vencain at comcast dot net | Assignee|unassigned at gcc dot gnu.org |paolo.carlini at oracle dot com Target Milestone|--- |4.9.0 --- Comment #9 from Paolo Carlini paolo.carlini at oracle dot com --- On it.
[Bug fortran/38312] Unexpected STATEMENT FUNCTION statement
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38312 Bud Davis bdavis at gcc dot gnu.org changed: What|Removed |Added CC||bdavis at gcc dot gnu.org --- Comment #7 from Bud Davis bdavis at gcc dot gnu.org --- 18 months since any comments were made... If I had a vote, it would be close as a WONT FIX. --bud