[Bug c++/53599] [4.7/4.8 Regression] gcc-4.7.1_rc20120606 segfaults compiling boost.karma
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53599 --- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-08 06:43:51 UTC --- Yeah, I agree with that.
[Bug target/51408] Miscompilation in arm.md:*minmax_arithsi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51408 --- Comment #6 from jye2 at gcc dot gnu.org 2012-06-08 06:58:32 UTC --- Author: jye2 Date: Fri Jun 8 06:58:25 2012 New Revision: 188327 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188327 Log: Backport mainline r179607, r179979, r179980, r181416, r182014 2012-06-08 Joey Ye joey...@arm.com Backport r182014 from mainline. 2011-12-05 Kazu Hirata k...@codesourcery.com PR target/51408 * config/arm/arm.md (*minmax_arithsi): Always require the else clause in the MINUS case. Backport r181416 from mainline. 2011-11-16 Richard Earnshaw rearn...@arm.com Bernd Schmidt ber...@coudesourcery.com Sebastian Huber sebastian.hu...@embedded-brains.de PR target/49641 * config/arm/arm.c (store_multiple_sequence): Avoid cases where the base reg is stored iff compiling for Thumb1. Backport r179980 from mainline. 2011-10-14 David Alan Gilbert david.gilb...@linaro.org PR target/48126 * config/arm/arm.c (arm_output_sync_loop): Move label before barrier. Backport r179979 from mainline. 2011-10-14 David Alan Gilbert david.gilb...@linaro.org * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1. Backport r179607 from mainline. 2011-10-06 Bernd Schmidt ber...@codesourcery.com PR target/49049 * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative. Testsuites: Backport r182014 from mainline 2011-12-05 Kazu Hirata k...@codesourcery.com PR target/51408 * gcc.dg/pr51408.c: New. Backport r181416 from mainline 2011-11-16 Richard Earnshaw rearn...@arm.com Bernd Schmidt ber...@coudesourcery.com Sebastian Huber sebastian.hu...@embedded-brains.de PR target/49641 * gcc.target/arm/pr49641.c: New test. Backport r179607 from mainline 2011-10-06 Bernd Schmidt ber...@codesourcery.com PR target/49049 * gcc.c-torture/compile/pr49049.c: New test. Added: branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.c-torture/compile/pr49049.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/pr51408.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr49641.c Modified: branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.c branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.h branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.md branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm
[Bug target/48126] arm_output_sync_loop: misplaced memory barrier
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48126 --- Comment #12 from jye2 at gcc dot gnu.org 2012-06-08 06:58:32 UTC --- Author: jye2 Date: Fri Jun 8 06:58:25 2012 New Revision: 188327 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188327 Log: Backport mainline r179607, r179979, r179980, r181416, r182014 2012-06-08 Joey Ye joey...@arm.com Backport r182014 from mainline. 2011-12-05 Kazu Hirata k...@codesourcery.com PR target/51408 * config/arm/arm.md (*minmax_arithsi): Always require the else clause in the MINUS case. Backport r181416 from mainline. 2011-11-16 Richard Earnshaw rearn...@arm.com Bernd Schmidt ber...@coudesourcery.com Sebastian Huber sebastian.hu...@embedded-brains.de PR target/49641 * config/arm/arm.c (store_multiple_sequence): Avoid cases where the base reg is stored iff compiling for Thumb1. Backport r179980 from mainline. 2011-10-14 David Alan Gilbert david.gilb...@linaro.org PR target/48126 * config/arm/arm.c (arm_output_sync_loop): Move label before barrier. Backport r179979 from mainline. 2011-10-14 David Alan Gilbert david.gilb...@linaro.org * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1. Backport r179607 from mainline. 2011-10-06 Bernd Schmidt ber...@codesourcery.com PR target/49049 * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative. Testsuites: Backport r182014 from mainline 2011-12-05 Kazu Hirata k...@codesourcery.com PR target/51408 * gcc.dg/pr51408.c: New. Backport r181416 from mainline 2011-11-16 Richard Earnshaw rearn...@arm.com Bernd Schmidt ber...@coudesourcery.com Sebastian Huber sebastian.hu...@embedded-brains.de PR target/49641 * gcc.target/arm/pr49641.c: New test. Backport r179607 from mainline 2011-10-06 Bernd Schmidt ber...@codesourcery.com PR target/49049 * gcc.c-torture/compile/pr49049.c: New test. Added: branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.c-torture/compile/pr49049.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/pr51408.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr49641.c Modified: branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.c branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.h branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.md branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm
[Bug c++/53602] [4.7/4.8 Regression] Libre Office causes an internal compiler error
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53602 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||rth at gcc dot gnu.org --- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-08 07:51:25 UTC --- We end up with: (insn 38 73 40 5 (parallel [ (set (reg/f:SI 7 sp) (plus:SI (reg/f:SI 7 sp) (const_int 12 [0xc]))) (clobber (reg:CC 17 flags)) ]) pr53602.ii:359 251 {*addsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_ARGS_SIZE (const_int 0 [0]) (nil (insn 40 38 41 5 (parallel [ (set (reg/f:SI 7 sp) (plus:SI (reg/f:SI 7 sp) (const_int -12 [0xfff4]))) (clobber (reg:CC 17 flags)) ]) pr53602.ii:64 251 {*addsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_ARGS_SIZE (const_int 12 [0xc]) (nil (insn 41 40 42 5 (set (mem/f:SI (pre_dec:SI (reg/f:SI 7 sp)) [0 S4 A32]) (mem/f/c:SI (plus:SI (reg/f:SI 6 bp) (const_int -12 [0xfff4])) [3 D.3489.pData+0 S4 A32])) pr53602.ii:64 43 {*pushsi2} (expr_list:REG_ARGS_SIZE (const_int 16 [0x10]) (nil))) before csa and csa obviously merges the two into sp += 0 that it wants to delete. force_move_args_size is called with prev == NULL (as it is at the start of a bb). But apparently cleanup_cfg at the start of csa pass jump threaded the call sequence starting at insn 41, so the two stack adjustments that cancel each other end up the only insns in a bb. So we trigger: /* ??? We *must* have a place, lest we ICE on the lost adjustment. Options are: dummy clobber insn, nop, or prevent the removal of the sp += 0 insn. Defer that decision until we can prove this can actually happen. */ I guess if we proved that all the predecessors of the bb have the same current REG_ARGS_SIZE, or all the successor have the same current REG_ARGS_SIZE, we could avoid the note altogether. Or do one of the things the comment talks about. Richard, can you please handle this?
[Bug fortran/52552] [OOP] ICE when trying to allocate non-allocatable object giving a dynamic type
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52552 --- Comment #5 from janus at gcc dot gnu.org 2012-06-08 07:55:34 UTC --- (In reply to comment #4) This patch avoids the segfault and correctly rejects the test case. I hope it does not introduce any other problems (I'll try it on the testsuite soon). It passes the testsuite without any failures.
[Bug c++/53602] [4.7/4.8 Regression] Libre Office causes an internal compiler error
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53602 --- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2012-06-08 07:57:23 UTC --- Or perhaps just handle this particular case for now, when there has been jump threading right after the sp adjustment sequence that cancelled each other. Thus, if we reach end of bb after the insn without seeing a CALL or or throwing insn and the bb has a single fallthru successor only, keep looking in the successor bb.
[Bug target/51915] [4.7 Regression] ICE in output_move_double
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51915 --- Comment #6 from jye2 at gcc dot gnu.org 2012-06-08 08:58:01 UTC --- Author: jye2 Date: Fri Jun 8 08:57:53 2012 New Revision: 188332 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188332 Log: 2012-06-08 Joey Ye joey...@arm.com Backport r184442 from mainline 2012-02-21 Richard Earnshaw rearn...@arm.com PR target/52294 * thumb2.md (thumb2_shiftsi3_short): Split register and immediate shifts. For register shifts tie operands 0 and 1. (peephole2 for above): Check that register-controlled shifts have suitably tied operands. Backport r183756 from mainline 2012-01-31 Matthew Gretton-Dann matthew.gretton-d...@arm.com * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition. Backport r183349 from mainline 2012-01-20 Jakub Jelinek ja...@redhat.com PR target/51915 * config/arm/arm.c (arm_count_output_move_double_insns): Call output_move_double on a copy of operands array. Backport r183095 from mainline 2012-01-11 Matthew Gretton-Dann matthew.gretton-d...@arm.com * config/arm/arm.md (mov_notscc): Use MVN for false condition. Backport r182628 from mainline 2011-12-21 Richard Earnshaw rearn...@arm.com PR target/51643 * arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous change. Backport r182621 from mainline 2011-12-21 Richard Earnshaw rearn...@arm.com PR target/51643 * arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a weak function on bare-metal EABI targets. Testsuite: Backport r183349 from mainline 2012-01-20 Jakub Jelinek ja...@redhat.com PR target/51915 * gcc.target/arm/pr51915.c: New test. Backport r183095 from mainline 2012-01-11 Matthew Gretton-Dann matthew.gretton-d...@arm.com * gcc.c-torture/execute/20120110-1.c: New testcase. Backport r182621 from mainline 2011-12-21 Richard Earnshaw rearn...@arm.com PR target/51643 * gcc.target/arm/sibcall-2.c: New test. Added: branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.c-torture/execute/20120111-1.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr51915.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/sibcall-2.c Modified: branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.c branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.md branches/ARM/embedded-4_6-branch/gcc/config/arm/thumb2.md branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm
[Bug target/52294] [4.7 Regression] [ARM Thumb] generated asm code produces branch out of range error in gas with -Os -mcpu=cortex-a9
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52294 --- Comment #12 from jye2 at gcc dot gnu.org 2012-06-08 08:57:59 UTC --- Author: jye2 Date: Fri Jun 8 08:57:53 2012 New Revision: 188332 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188332 Log: 2012-06-08 Joey Ye joey...@arm.com Backport r184442 from mainline 2012-02-21 Richard Earnshaw rearn...@arm.com PR target/52294 * thumb2.md (thumb2_shiftsi3_short): Split register and immediate shifts. For register shifts tie operands 0 and 1. (peephole2 for above): Check that register-controlled shifts have suitably tied operands. Backport r183756 from mainline 2012-01-31 Matthew Gretton-Dann matthew.gretton-d...@arm.com * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition. Backport r183349 from mainline 2012-01-20 Jakub Jelinek ja...@redhat.com PR target/51915 * config/arm/arm.c (arm_count_output_move_double_insns): Call output_move_double on a copy of operands array. Backport r183095 from mainline 2012-01-11 Matthew Gretton-Dann matthew.gretton-d...@arm.com * config/arm/arm.md (mov_notscc): Use MVN for false condition. Backport r182628 from mainline 2011-12-21 Richard Earnshaw rearn...@arm.com PR target/51643 * arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous change. Backport r182621 from mainline 2011-12-21 Richard Earnshaw rearn...@arm.com PR target/51643 * arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a weak function on bare-metal EABI targets. Testsuite: Backport r183349 from mainline 2012-01-20 Jakub Jelinek ja...@redhat.com PR target/51915 * gcc.target/arm/pr51915.c: New test. Backport r183095 from mainline 2012-01-11 Matthew Gretton-Dann matthew.gretton-d...@arm.com * gcc.c-torture/execute/20120110-1.c: New testcase. Backport r182621 from mainline 2011-12-21 Richard Earnshaw rearn...@arm.com PR target/51643 * gcc.target/arm/sibcall-2.c: New test. Added: branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.c-torture/execute/20120111-1.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr51915.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/sibcall-2.c Modified: branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.c branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.md branches/ARM/embedded-4_6-branch/gcc/config/arm/thumb2.md branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm
[Bug target/51643] Incorrect code produced for tail-call of weak function with -O2/-O3 option
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51643 --- Comment #16 from jye2 at gcc dot gnu.org 2012-06-08 08:58:02 UTC --- Author: jye2 Date: Fri Jun 8 08:57:53 2012 New Revision: 188332 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188332 Log: 2012-06-08 Joey Ye joey...@arm.com Backport r184442 from mainline 2012-02-21 Richard Earnshaw rearn...@arm.com PR target/52294 * thumb2.md (thumb2_shiftsi3_short): Split register and immediate shifts. For register shifts tie operands 0 and 1. (peephole2 for above): Check that register-controlled shifts have suitably tied operands. Backport r183756 from mainline 2012-01-31 Matthew Gretton-Dann matthew.gretton-d...@arm.com * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition. Backport r183349 from mainline 2012-01-20 Jakub Jelinek ja...@redhat.com PR target/51915 * config/arm/arm.c (arm_count_output_move_double_insns): Call output_move_double on a copy of operands array. Backport r183095 from mainline 2012-01-11 Matthew Gretton-Dann matthew.gretton-d...@arm.com * config/arm/arm.md (mov_notscc): Use MVN for false condition. Backport r182628 from mainline 2011-12-21 Richard Earnshaw rearn...@arm.com PR target/51643 * arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous change. Backport r182621 from mainline 2011-12-21 Richard Earnshaw rearn...@arm.com PR target/51643 * arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a weak function on bare-metal EABI targets. Testsuite: Backport r183349 from mainline 2012-01-20 Jakub Jelinek ja...@redhat.com PR target/51915 * gcc.target/arm/pr51915.c: New test. Backport r183095 from mainline 2012-01-11 Matthew Gretton-Dann matthew.gretton-d...@arm.com * gcc.c-torture/execute/20120110-1.c: New testcase. Backport r182621 from mainline 2011-12-21 Richard Earnshaw rearn...@arm.com PR target/51643 * gcc.target/arm/sibcall-2.c: New test. Added: branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.c-torture/execute/20120111-1.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr51915.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/sibcall-2.c Modified: branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.c branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.md branches/ARM/embedded-4_6-branch/gcc/config/arm/thumb2.md branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm
[Bug c++/53609] New: Wrong variadic template pack expansion
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53609 Bug #: 53609 Summary: Wrong variadic template pack expansion Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: gaetano.checin...@googlemail.com g++-4.7 missinterperts folowing code : templateclass...I struct List{}; templateint I struct Z{ static constexpr int value=I;}; templateint...I using NumList = List ZI... ; templateclass Lstruct Mover; templatetemplateclass...class C, class...I struct MoverCI... { using NL = NumList I::value... ; // aka : List ZI... // missinterpreted as : List ZI... }; using L=List Z1,Z2,Z3 ; // Works fine using L2= NumList 1,2,3 ; // Works also fine Mover L ::NL A; // dont work : should be 1 not 3 args in 'Z'
[Bug c++/53610] New: C++11: constructors accept silly initializers
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53610 Bug #: 53610 Summary: C++11: constructors accept silly initializers Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: akim.demai...@gmail.com Created attachment 27584 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27584 test case Use braces to call a constructor, G++ 4.7 and 4.8 both accept silly arguments, provided the number of members matches the number of expected arguments. #include iostream class bar { public: bar(int a, int b) { std::cerr a ' ' b std::endl; } }; int main() { bar{.first = 42, .second = 51}; } $ g++-mp-4.7 --version g++-mp-4.7 (MacPorts gcc47 4.7.0_3) 4.7.0 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ g++-mp-4.7 -Wall -std=c++11 bar.cc $ ./a.out 42 51 $ g++-mp-4.8 --version g++-mp-4.8 (MacPorts gcc48 4.8-20120603_1) 4.8.0 20120603 (experimental) Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ g++-mp-4.8 -Wall -std=c++11 bar.cc $ ./a.out 42 51
[Bug c++/53610] C++11: constructors accept silly initializers
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53610 --- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-08 09:14:23 UTC --- This seems to be an incomplete implementation of C99 designated initializers, use -pedantic or -pedantic-errors to get a diagnostic.
[Bug c++/53494] [4.7/4.8 Regression] ICE with invalid initializer list
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53494 --- Comment #21 from Paolo Carlini paolo.carlini at oracle dot com 2012-06-08 09:20:47 UTC --- No includes: templatetypename T, typename U struct pair { T first; U second; pair(const T, const U); }; templatetypename T struct array { typedef T value_type; value_type data[1]; }; struct string { string(const char*) { } }; arraypairstring, unsigned const const matchSynonyms{ {smile,1} };
[Bug c++/53494] [4.7/4.8 Regression] ICE with invalid initializer list
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53494 --- Comment #22 from Paolo Carlini paolo.carlini at oracle dot com 2012-06-08 09:27:34 UTC --- A tad simpler: templatetypename T, typename U struct pair { T first; U second; pair(const T, const U); }; templatetypename T struct array { typedef T value_type; value_type data[1]; }; arraypairint, int const matchSynonyms{ { 1, 1 } };
[Bug c++/53609] Wrong variadic template pack expansion in alias template
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53609 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added Keywords||rejects-valid Status|UNCONFIRMED |NEW Last reconfirmed||2012-06-08 CC||dodji at gcc dot gnu.org Summary|Wrong variadic template |Wrong variadic template |pack expansion |pack expansion in alias ||template Ever Confirmed|0 |1 Known to fail||4.7.0, 4.8.0 --- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-08 09:49:33 UTC --- Confirmed. It works fine if you rewrite it without alias templates: templateint...I struct NumList { typedef List ZI... type; }; then use NumList::type instead of NumList, so the problem is with the alias template substitution. G++ seems to be treating ZI... as ZI... in the type-id of the alias-declaration.
[Bug c++/53611] New: class with hidden visibility cause function returns pointer to class also be hidden
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53611 Bug #: 53611 Summary: class with hidden visibility cause function returns pointer to class also be hidden Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: kirbyz...@sogou-inc.com [root@djt-17-109-v06 tmp]# cat tvisi.cpp extern C typedef struct __cook cook_t; extern C cook_t* myopen(); struct __attribute__ ((visibility (hidden))) __cook { virtual ~__cook() = 0; }; //__attribute__ ((visibility (default))) cook_t* myopen() { return 0; } [root@djt-17-109-v06 tmp]# g++ tvisi.cpp -o libxx.so -shared -fPIC nm -D libxx.so | fgrep myopen 05cc T myopen The function myopen is exported by g++ 4.4.6 [root@djt-17-109-v06 tmp]# g++47 tvisi.cpp -o libxx.so -shared -fPIC nm -D libxx.so | fgrep myopen [root@djt-17-109-v06 tmp]# The function myopen is not exported by g++ 4.7.0 Workaround: define '__cook' after the definition of 'myopen'
[Bug c/53612] New: __attribute__((format(...))) does not work with wchar_t format strings
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53612 Bug #: 53612 Summary: __attribute__((format(...))) does not work with wchar_t format strings Classification: Unclassified Product: gcc Version: 4.5.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: vhais...@gmail.com The __attribute__((format(...))) does not work for wchar_t format strings: /*-8--*/ #include wchar.h void foo (char const * fmt, ...) __attribute__ ((format (__printf__, 1, 2))); void wide_foo (wchar_t const * fmt, ...) __attribute__ ((format (__printf__, 1, 2))); /*-8--*/ I get the following error with Cygwin's GCC 4.5.3: ./format_attr_text.c:4:1: error: format string argument not a string type
[Bug c++/53613] New: Cannot override a inline = default virtual destructor.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53613 Bug #: 53613 Summary: Cannot override a inline = default virtual destructor. Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: kirbyz...@sogou-inc.com [root@djt-17-109-v06 tmp]# cat tover.cpp struct __cook { virtual ~__cook() = default; }; struct __cook1: public __cook { virtual ~__cook1() = default; }; struct __cook2: public __cook { virtual ~__cook2(); }; __cook2::~__cook2() {}; struct __cook3: public __cook { virtual ~__cook3(); }; __cook3::~__cook3() = default; [root@djt-17-109-v06 tmp]# g++47 -c -std=gnu++11 tover.cpp tover.cpp:6:10: error: looser throw specifier for 'virtual __cook1::~__cook1()' tover.cpp:2:10: error: overriding 'virtual __cook::~__cook() noexcept (true)' tover.cpp:10:10: error: looser throw specifier for 'virtual __cook2::~__cook2()' tover.cpp:2:10: error: overriding 'virtual __cook::~__cook() noexcept (true)' tover.cpp:15:10: error: looser throw specifier for 'virtual __cook3::~__cook3()' tover.cpp:2:10: error: overriding 'virtual __cook::~__cook() noexcept (true) ' [root@djt-17-109-v06 tmp]# g++ -c -std=gnu++0x tover.cpp # g++ 4.4.6 works Workaround: define parent destructor outside the class definition. [root@djt-17-109-v06 tmp]# cat tover.cpp struct __cook { virtual ~__cook(); }; __cook::~__cook() = default; /*...*/
[Bug c++/53611] class with hidden visibility cause function returns pointer to class also be hidden
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53611 --- Comment #1 from Kirby Zhou kirbyz...@sogou-inc.com 2012-06-08 11:16:36 UTC --- gcc source base: DATE 20120604 svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_7-branch@188193
[Bug c++/53613] Cannot override a inline = default virtual destructor.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53613 --- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-08 11:16:47 UTC --- Fixed on trunk by patch for PR 50043
[Bug c++/53613] Cannot override a inline = default virtual destructor.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53613 --- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-08 11:18:47 UTC --- (In reply to comment #0) Workaround: define parent destructor outside the class definition. Or add explicit 'noexcept' specifiers to the derived destructors.
[Bug fortran/52531] [OOP] Compilation fails with polymorphic dummy argument and OpenMP
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52531 janus at gcc dot gnu.org changed: What|Removed |Added CC||janus at gcc dot gnu.org --- Comment #3 from janus at gcc dot gnu.org 2012-06-08 13:00:53 UTC --- (In reply to comment #2) Out of curiosity, would there be a technical issue in this case? It sure seemed natural to me. AFAICS there should not be any huge issues. One might consider to implement this as an extension.
[Bug tree-optimization/51938] missed optimization: 2 comparisons
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51938 --- Comment #5 from Marc Glisse glisse at gcc dot gnu.org 2012-06-08 13:06:52 UTC --- The main difficulty is trapping math. It isn't hard to add to tree-ssa-ifcombine an ifcombine_ifnotandif variant, and we could make it call maybe_fold_and_comparisons (as ifcombine_ifandif does) with invert_tree_comparison (gimple_cond_code (outer_cond),...), but unless we pass -fno-trapping-math, it won't help. combine_comparisons (fold-const.c) has relevant code to determine whether the optimization is safe wrt trapping, but it does so with the semantic that UNLT_EXPR never traps, whereas I am (wrongfully) using it for TRUTH_NOT_EXPR(GE_EXPR). So I guess that means two more versions of maybe_fold_and_comparisons/maybe_fold_or_comparisons are needed :-(
[Bug c++/53602] [4.7/4.8 Regression] Libre Office causes an internal compiler error
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53602 Richard Henderson rth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |rth at gcc dot gnu.org |gnu.org | --- Comment #9 from Richard Henderson rth at gcc dot gnu.org 2012-06-08 14:10:29 UTC --- Mine.
[Bug c++/53614] New: g++ undefined symbols static const data members conditional assignment
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53614 Bug #: 53614 Summary: g++ undefined symbols static const data members conditional assignment Classification: Unclassified Product: gcc Version: 4.4.6 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: cam888e...@yahoo.com Created attachment 27585 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27585 output of -save-temps I wanted to attach a 2nd file, main.ii. Also a 3rd file, Foo.cc. Looks like this only allows 1 attachment. I will try to send later. main.ii should let you duplicate ld error undefined symbols. Foo.cc if you wish to verify correctness using -DWORKAROUND, otherwise please ignore it. Thanks. % echo ; g++ -v -save-temps -m64 -c Foo.cc ; echo ; g++ -v -save-temps -m64 -odefineMe main.cc Foo.o Using built-in specs. 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 --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --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.4.6 20110731 (Red Hat 4.4.6-3) (GCC) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-c' '-shared-libgcc' '-mtune=generic' /usr/libexec/gcc/x86_64-redhat-linux/4.4.6/cc1plus -E -quiet -v -D_GNU_SOURCE Foo.cc -m64 -mtune=generic -fpch-preprocess -o Foo.ii ignoring nonexistent directory /usr/lib/gcc/x86_64-redhat-linux/4.4.6/include-fixed ignoring nonexistent directory /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../x86_64-redhat-linux/include #include ... search starts here: #include ... search starts here: /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6 /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/backward /usr/local/include /usr/lib/gcc/x86_64-redhat-linux/4.4.6/include /usr/include End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-c' '-shared-libgcc' '-mtune=generic' /usr/libexec/gcc/x86_64-redhat-linux/4.4.6/cc1plus -fpreprocessed Foo.ii -quiet -dumpbase Foo.cc -m64 -mtune=generic -auxbase Foo -version -o Foo.s GNU C++ (GCC) version 4.4.6 20110731 (Red Hat 4.4.6-3) (x86_64-redhat-linux) compiled by GNU C version 4.4.6 20110731 (Red Hat 4.4.6-3), GMP version 4.3.1, MPFR version 2.4.1. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 42c2a139506c57f2f1525b40cf548e53 COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-c' '-shared-libgcc' '-mtune=generic' as -V -Qy --64 -o Foo.o Foo.s GNU assembler version 2.20.51.0.2 (x86_64-redhat-linux) using BFD version version 2.20.51.0.2-5.28.el6 20091009 COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.6/:/usr/lib/gcc/x86_64-redhat-linux/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.6/:/usr/lib/gcc/x86_64-redhat-linux/ LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.4.6/:/usr/lib/gcc/x86_64-redhat-linux/4.4.6/:/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-c' '-shared-libgcc' '-mtune=generic' Using built-in specs. 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 --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --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.4.6 20110731 (Red Hat 4.4.6-3) (GCC) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-m64' '-odefineMe' '-shared-libgcc'
[Bug c++/53614] g++ undefined symbols static const data members conditional assignment
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53614 --- Comment #1 from Cameron MacMinn cam888eron at yahoo dot com 2012-06-08 15:17:48 UTC --- Created attachment 27586 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27586 2nd output of -save-temps
[Bug c++/53614] g++ undefined symbols static const data members conditional assignment
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53614 --- Comment #2 from Cameron MacMinn cam888eron at yahoo dot com 2012-06-08 15:18:59 UTC --- Created attachment 27587 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27587 to verify correctness using -DWORKAROUND, else ignore
[Bug libitm/53113] Build fails in x86_avx.cc if AVX disabled but supported by as (Solaris Linux)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53113 safety0ff.bugz at gmail dot com changed: What|Removed |Added CC||safety0ff.bugz at gmail dot ||com --- Comment #1 from safety0ff.bugz at gmail dot com 2012-06-08 15:21:52 UTC --- I have this problem too. I'm using Gentoo x86_64, with GNU binutils 2.22 as well. My CPU does support AVX (Intel Sandy Bridge.) It is using the following flags: -g -march=native -mtune=generic -mno-avx -O2 -pipe It is a pain for me because Valgrind doesn't support AVX and compiling programs with my system/default gcc version ends up using the 4.7 libgcc_s.so at run time which will contain AVX code if I compile with AVX enabled.
[Bug c++/53614] g++ undefined symbols static const data members conditional assignment
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53614 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID --- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-08 15:41:15 UTC --- Not a bug, see http://gcc.gnu.org/wiki/VerboseDiagnostics#missing_static_const_definition
[Bug other/53615] New: Buffer overflow in the compiler?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53615 Bug #: 53615 Summary: Buffer overflow in the compiler? Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassig...@gcc.gnu.org ReportedBy: g...@gcc.gnu.org Host: x86-linux-gnu, mingw32 Target: avr Build: x86-linux-gnu This is a bug I observe with the GCC 4.7.1 release snapshot SVN 188257. == Command line == $ avr-gcc -c wek.c -mmcu=atmega2561 -O3 -mstrict-X == configure == Target: avr Configured with: ../../gcc.gnu.org/gcc-4_7-branch/configure --target=avr --prefix=/local/gnu/install/gcc-4.7 --disable-nls --with-dwarf2 --enable-languages=c,c++ --enable-target-optspace=yes Thread model: single gcc version 4.7.1 20120606 (prerelease) (GCC) GNU C (GCC) version 4.7.1 20120606 (prerelease) (avr) compiled by GNU C version 4.3.2 [gcc-4_3-branch revision 141291], GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2 The problem can also be seen with canadian cross configured as: ../../gcc.gnu.org/gcc-4_7-branch/configure --target=avr --prefix=/local/gnu/install/gcc-4.7-mingw32 --host=i386-mingw32 --build=i686-linux-gnu --enable-languages=c,c++ --disable-nls --disable-shared --with-dwarf2
[Bug other/53615] Buffer overflow in the compiler?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53615 --- Comment #1 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-06-08 16:48:22 UTC --- Created attachment 27588 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27588 wek.c And here is the source file wek.c Compiled with the above options yields: $ avr-gcc -c wek.c -mmcu=atmega2561 -O3 -mstrict-X wek.c: In function 'foo': wek.c:86:20: error: can't find a register in class 'BASE_POINTER_REGS' while reloading 'asm' wek.c:86:20: error: 'asm' operand has impossible constraints At the beginning of the source you see a macro called CODE32 that is defined to a string literal which is used as inline assembler code template. If CODE32 is defined to a shorter string like #define CODE32 \ ;%2, %C1%1%A0, Z+\n\telpm %B0, Z\n\t the compiler passes. By all of by understanding such an error should not depend on the length of the inline assembler template. Thus, does this indicates a buffer overflow or missing GTY or similar? Notice that the %-operands / %-operand sequence is unchanged in the shorter version of CODE32.
[Bug other/53615] Buffer overflow in the compiler?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53615 --- Comment #2 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-06-08 16:52:54 UTC --- Note: In attachment 27588 the long version is commented out. You have to remove the comment and the second CODE32 like so: #define CODE32 \ out %2, %C1\n\tmovw r30, %1\n\telpm %A0, Z+\n\telpm %B0, Z\n\t instead of //#define CODE32 \ // out %2, %C1\n\tmovw r30, %1\n\telpm %A0, Z+\n\telpm %B0, Z\n\t #define CODE32 \ ;%2, %C1%1%A0, Z+\n\telpm %B0, Z\n\t
[Bug rtl-optimization/53595] Code size increase of +10% between two 4.7.1 snapshot
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53595 --- Comment #11 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-06-08 17:04:41 UTC --- FYI, the patch attachment 27568 also resolves the strange error described in PR53615, at least for the test case given there.
[Bug middle-end/53616] New: [4.8 Regression] 416.gamess in SPEC CPU 2006 miscompiled
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53616 Bug #: 53616 Summary: [4.8 Regression] 416.gamess in SPEC CPU 2006 miscompiled Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com CC: areg.melikadam...@gmail.com On Linux/x86-64, revision 188299 miscompiled 416.gamess in SPEC CPU 2006 with: -O3 -funroll-loops -ffast-math -ffixed-form -DSPEC_CPU_LP64 Running 416.gamess ref peak lnx32e-gcc default *** Miscompare of triazolium.out; for details see /export/gnu/import/git/gcc-test-spec/spec/2006/x86_64/spec/benchspec/CPU2006 /416.gamess/run/run_peak_ref_lnx32e-gcc./triazolium.out.mis *** Miscompare of cytosine.2.out; for details see /export/gnu/import/git/gcc-test-spec/spec/2006/x86_64/spec/benchspec/CPU2006 /416.gamess/run/run_peak_ref_lnx32e-gcc./cytosine.2.out.mis Revision 188248 is OK.
[Bug libitm/53113] Build fails in x86_avx.cc if AVX disabled but supported by as (Solaris Linux)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53113 --- Comment #2 from safety0ff.bugz at gmail dot com 2012-06-08 17:20:28 UTC --- Created attachment 27589 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27589 This patch works for me (I have no clue whether it is the proper fix.) This patch works for me (I have no clue whether it is the proper fix.) Compiles, I can compile stuff with the resulting g++, compiled stuff runs...
[Bug fortran/52552] [OOP] ICE when trying to allocate non-allocatable object giving a dynamic type
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52552 --- Comment #6 from janus at gcc dot gnu.org 2012-06-08 17:26:18 UTC --- Author: janus Date: Fri Jun 8 17:26:11 2012 New Revision: 188335 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=188335 Log: 2012-06-08 Janus Weil ja...@gcc.gnu.org PR fortran/52552 * match.c (gfc_match_allocate): Modify order of checks. Change wording of error message. Remove FIXME note. * resolve.c (resolve_allocate_expr): Add a comment. 2012-06-08 Janus Weil ja...@gcc.gnu.org PR fortran/52552 * gfortran.dg/allocate_alloc_opt_1.f90: Modified. * gfortran.dg/allocate_class_1.f90: Modified. * gfortran.dg/allocate_with_typespec_4.f90: Modified. * gfortran.dg/allocate_class_2.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/allocate_class_2.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/match.c trunk/gcc/fortran/resolve.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gfortran.dg/allocate_alloc_opt_1.f90 trunk/gcc/testsuite/gfortran.dg/allocate_class_1.f90 trunk/gcc/testsuite/gfortran.dg/allocate_with_typespec_4.f90
[Bug fortran/52552] [OOP] ICE when trying to allocate non-allocatable object giving a dynamic type
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52552 janus at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #7 from janus at gcc dot gnu.org 2012-06-08 17:38:46 UTC --- Fixed with r188335. Closing. Thanks for the report!
[Bug fortran/52265] [OOP] TREE dump confusing with nested SELECT TYPE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52265 janus at gcc dot gnu.org changed: What|Removed |Added CC||janus at gcc dot gnu.org --- Comment #2 from janus at gcc dot gnu.org 2012-06-08 18:21:36 UTC --- (In reply to comment #0) Expected: Use different variable names, e.g. via gfc_create_var (type, __tmp_type_t) I guess the technical problem here is that the temporaries are created already at resolution stage (in resolve_select_type) on a gfc_symtree level, while gfc_create_var operates on tree-level (at translation stage). Do we have any other mechanism for creating temporaries, which could be employed here? Or do we need to generate a numerically-decorated (or 'randomized') name by hand?
[Bug c/53612] __attribute__((format(...))) does not work with wchar_t format strings
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53612 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 2012-06-08 18:42:45 UTC --- This is PR 38308 really. *** This bug has been marked as a duplicate of bug 38308 ***
[Bug c/38308] -Wformat does not work for wide strings
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38308 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added CC||vhaisman at gmail dot com --- Comment #4 from Andrew Pinski pinskia at gcc dot gnu.org 2012-06-08 18:42:45 UTC --- *** Bug 53612 has been marked as a duplicate of this bug. ***
[Bug c++/53611] class with hidden visibility cause function returns pointer to class also be hidden
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53611 --- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-06-08 18:44:18 UTC --- I think this is expected behavior as if someone defines a __cook in the executable which links to the shared library, it will be considered a different type.
[Bug fortran/52531] [OOP] Compilation fails with polymorphic dummy argument and OpenMP
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52531 --- Comment #4 from kaladhorn at me dot com 2012-06-08 18:46:11 UTC --- (In reply to comment #3) (In reply to comment #2) Out of curiosity, would there be a technical issue in this case? It sure seemed natural to me. AFAICS there should not be any huge issues. One might consider to implement this as an extension. If it does not hurt, I think it would be a good thing. As far as I am concerned, I engineered around it, as it is really an edge case we do not want to rely on. It arguably makes some code uglier, though.
[Bug fortran/52552] [OOP] ICE when trying to allocate non-allocatable object giving a dynamic type
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52552 --- Comment #8 from gccbgz.lionm at xoxy dot net 2012-06-08 18:56:19 UTC --- Nice! Thanks for fixing!
[Bug tree-optimization/51938] missed optimization: 2 comparisons
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51938 --- Comment #6 from Marc Glisse glisse at gcc dot gnu.org 2012-06-08 19:49:07 UTC --- Created attachment 27590 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27590 incomplete patch I wonder if this is the right direction. At least it passes the testsuite and optimizes the original testcase.
[Bug tree-optimization/51938] missed optimization: 2 comparisons
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51938 Marc Glisse glisse at gcc dot gnu.org changed: What|Removed |Added Attachment #27590|0 |1 is obsolete|| --- Comment #7 from Marc Glisse glisse at gcc dot gnu.org 2012-06-08 20:03:35 UTC --- Created attachment 27591 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27591 incomplete patch The same with one less typo and more up-to-date comments.
[Bug middle-end/53616] [4.8 Regression] 416.gamess in SPEC CPU 2006 miscompiled
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53616 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added CC||rguenth at gcc dot gnu.org Target Milestone|--- |4.8.0 --- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2012-06-08 22:15:39 UTC --- It is caused by revision 188261: http://gcc.gnu.org/ml/gcc-cvs/2012-06/msg00171.html
[Bug target/53256] [avr] Attribute 'interrupt' shall override attribute 'signal'
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53256 --- Comment #4 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-06-08 22:42:27 UTC --- See also the following AVR-LibC bug report: http://savannah.nongnu.org/bugs/index.php?26734
[Bug c++/53415] problematic error message for ambiguity
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53415 Manuel López-Ibáñez manu at gcc dot gnu.org changed: What|Removed |Added Keywords||diagnostic Status|UNCONFIRMED |NEW Last reconfirmed||2012-06-08 CC||manu at gcc dot gnu.org Ever Confirmed|0 |1 --- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-06-08 23:47:03 UTC --- I think there are quite a few bugs here. Starting with the template-parameter-1-1 output. Clang is not very helpful in this case: /tmp/webcompile/_14729_0.cc:23:5: error: no matching function for call to 'foo' foo(1); ^~~ /tmp/webcompile/_14729_0.cc:19:20: note: candidate template ignored: substitution failure [with X = int] S0 + TX::value foo(X); ^ 1 error generated.
[Bug target/53617] New: Suboptimal PC-relative addressing code on x86
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53617 Bug #: 53617 Summary: Suboptimal PC-relative addressing code on x86 Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: bug...@aerifal.cx Consider a function of the form: int *foo() { static int x; return x; } When GCC compiles this, the result is similar to the following hand-written asm: call 1f 1: pop %ecx add $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx lea x@GOTOFF(%ecx),%eax ret i.e. it loads the address of the GOT in a register, then computes the GOT-relative address of the variable. This makes sense when the GOT address will be needed for more than one address lookup, but it's unnecessarily costly in the case where it's only used for a single variable, in which case the following code would be better: call 1f 1: pop %eax add $[x-1b], %eax ret The same principle applies to a great deal more code, and of course it works when __i686.get_pc_thunk.cx or similar is being used, too. Is there any way GCC could be enhanced to generate this superior code when possible?
[Bug c++/53618] New: segfault on self-referential class partial specialization argument
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53618 Bug #: 53618 Summary: segfault on self-referential class partial specialization argument Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: pot...@mac.com I was trying a new approach to SFINAE on 4.7.0 and ICEd instead. Not sure if this is valid. The idea is to check whether the specialization is already a complete class while forming the partial specialization arguments. (http://stackoverflow.com/questions/10958435) --- template int struct ic; template typename t, typename c = ic 0 struct is_dereferenceable; template typename t struct is_dereferenceable t, ic true? 0 : * t() {}; template typename t struct is_dereferenceable t, ic sizeof (is_dereferenceable t ) {}; is_dereferenceable char * i;
[Bug c++/53618] segfault on self-referential class partial specialization argument
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53618 David Krauss potswa at mac dot com changed: What|Removed |Added Severity|normal |minor --- Comment #1 from David Krauss potswa at mac dot com 2012-06-09 05:47:53 UTC --- I have been alerted to the fact that the sizeof expression is invalid because it can't be applied to an incomplete type. So this is crashes on invalid code. And the crashing specialization is extraneous anyway, such a case should be handled by the primary template. (Which can be said in general of such a mechanism, should anyone want it.)