[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278 --- Comment #8 from Jakub Jelinek 2013-05-08 06:58:37 UTC --- unsigned int f1 (unsigned int x, unsigned int y) { return (x << y) | (x >> (32 - y)); } unsigned int f2 (unsigned int x, unsigned long y) { return (x << y) | (x >> (32 - y)); } unsigned int f3 (unsigned int x) { return (x << 1) | (x >> (32 - 1)); } unsigned int f4 (unsigned int x) { return (x << (32 - 1)) | (x >> 1); } unsigned short int f5 (unsigned short int x, unsigned int y) { return (x << y) | (x >> (16 - y)); } unsigned short int f6 (unsigned short int x, unsigned long y) { return (x << y) | (x >> (16 - y)); } unsigned char f7 (unsigned char x, unsigned int y) { return (x << y) | (x >> (8 - y)); } unsigned char f8 (unsigned char x, unsigned long y) { return (x << y) | (x >> (8 - y)); } unsigned int f9 (unsigned int x, unsigned int y) { return (x << y) | (x >> (sizeof (unsigned int) - y)); } unsigned int f10 (unsigned int x, unsigned long y) { return (x << y) | (x >> (sizeof (unsigned int) - y)); } unsigned int f11 (unsigned int x) { return (x << 1) | (x >> (sizeof (unsigned int) - 1)); } unsigned int f12 (unsigned int x) { return (x << (sizeof (unsigned int) - 1)) | (x >> 1); } unsigned short int f13 (unsigned short int x, unsigned int y) { return (x << y) | (x >> (sizeof (unsigned short) - y)); } unsigned short int f14 (unsigned short int x, unsigned long y) { return (x << y) | (x >> (sizeof (unsigned short) - y)); } unsigned char f15 (unsigned char x, unsigned int y) { return (x << y) | (x >> (sizeof (unsigned char) - y)); } unsigned char f16 (unsigned char x, unsigned long y) { return (x << y) | (x >> (sizeof (unsigned char) - y)); } shows lots of various issues with rotates: 1) if the shift count isn't int expression, we don't detect that (there is extra cast that bit_rotate: doesn't handle) - example f2 2) for f3 we emit rorl $31, %eax while we should special case it and emit roll %eax instead (shorter insn; backend issue) 3) the casts added for promoted types aren't handled - example f5 - I guess even that is fine to handle, because say for y 17, while << 17 is defined behavior, >> (16 - 17) or >> (16U - 17) should be undefined behavior and thus really y should be [1, 15]. 4) the deferred SIZEOF_EXPR folding in C++ plays a role here 5) as mentioned in another PR, these rotate idioms assume non-zero rotation count, for 0 they have undefined behavior, so we should recognize also another form So, IMHO bit_rotate: should be extended to handle these (except that it can't do anything about SIZEOF_EXPR, being a FE tree (unless we add some langhook for it or handle it again in C++ lang folder), and perhaps some later pass (bswap pass or gimple-fold?) should be taught to recognize it too. And the vectorizer pattern detection needs to be taught to undo that if there is no vector rotation optab.
gcc-bugs@gcc.gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57068 --- Comment #2 from Kai Koehne 2013-05-08 06:39:48 UTC --- Still reproducable in revision 198685 . This is most likely a regression introduced by http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00024.html.
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 --- Comment #11 from Dominique d'Humieres 2013-05-08 06:27:32 UTC --- > Can you check what you see by running f951 under valgrind ? It fails for me with: [macbook] f90/bug% valgrind /opt/gcc/gcc4.9w/libexec/gcc/x86_64-apple-darwin10.8.0/4.9.0/f951 -O3 pr57192.f90 valgrind: mmap(0x100f87000, 1074532352) failed in UME (load_segment2).
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 --- Comment #10 from Joost VandeVondele 2013-05-08 06:18:54 UTC --- (In reply to comment #9) > On x86_64-apple-darwin10.8.0 at revision 198697 with the patch at > http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00367.html the test executes > under > valgrind without error (but some "reachable" memory leaks). also with the patch, which I assumed is the one attached to this PR, applied to gcc, I see the valgrind warnings during compilation. Can you check what you see by running f951 under valgrind ?
[Bug fortran/57094] [Fortran-Dev] ICE: in lhd_incomplete_type_error, at langhooks.c:203
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57094 --- Comment #5 from Dominique d'Humieres 2013-05-08 06:07:11 UTC --- For the record, the first test in comment #1 is invalid as n is not initialized. Now I see something I don't expect for both trunk and fortran-dev: if I set n to 7, then printing tmp gives 'aa'. Is this expected? If yes, why? If no, should I open a PR for it?
[Bug fortran/57197] [Fortran-Dev][Regression] ICE in record_reference, at cgraphbuild.c:66
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57197 Dominique d'Humieres changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-08 Ever Confirmed|0 |1 --- Comment #1 from Dominique d'Humieres 2013-05-08 06:01:37 UTC --- Confirmed.
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 --- Comment #9 from Dominique d'Humieres 2013-05-08 06:01:02 UTC --- On x86_64-apple-darwin10.8.0 at revision 198697 with the patch at http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00367.html the test executes under valgrind without error (but some "reachable" memory leaks).
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 Joost VandeVondele changed: What|Removed |Added Status|RESOLVED|REOPENED Last reconfirmed||2013-05-08 Resolution|FIXED | Ever Confirmed|0 |1 --- Comment #8 from Joost VandeVondele 2013-05-08 05:47:13 UTC --- Actually, I see the original problem re-appear with this morning's trunk. So something seems to randomly trigger this. Running the compilation of the testcase under valgrind, there appears to be an issue remaining. I'm not anymore sure this is relate to SLSR, but let me reopen the PR. ==50122== Conditional jump or move depends on uninitialised value(s) ==50122==at 0xDF5DAB: register_active_defs(df_ref_d**) (sparseset.h:147) ==50122==by 0xDF5E34: update_df_init(rtx_def*, rtx_def*) [clone .isra.11] (fwprop.c:893) ==50122==by 0xDF65F1: try_fwprop_subst(df_ref_d*, rtx_def**, rtx_def*, rtx_def*, bool) (fwprop.c:962) ==50122==by 0xDF6A91: forward_propagate_into(df_ref_d*) (fwprop.c:1342) ==50122==by 0xDF7A07: fwprop_addr() (fwprop.c:1528) ==50122==by 0x9021DF: execute_one_pass(opt_pass*) (passes.c:2337) ==50122==by 0x902644: execute_pass_list(opt_pass*) (passes.c:2389) ==50122==by 0x902656: execute_pass_list(opt_pass*) (passes.c:2390) ==50122==by 0x6CC857: expand_function(cgraph_node*) (cgraphunit.c:1640) ==50122==by 0x6CE5FC: compile() (cgraphunit.c:1744) ==50122==by 0x6CEC94: finalize_compilation_unit() (cgraphunit.c:2119) ==50122==by 0x8992FA: write_global_declarations() (langhooks.c:322) ==50122== ==50122== Conditional jump or move depends on uninitialised value(s) ==50122==at 0xDF5DAB: register_active_defs(df_ref_d**) (sparseset.h:147) ==50122==by 0xDF5E52: update_df_init(rtx_def*, rtx_def*) [clone .isra.11] (fwprop.c:894) ==50122==by 0xDF65F1: try_fwprop_subst(df_ref_d*, rtx_def**, rtx_def*, rtx_def*, bool) (fwprop.c:962) ==50122==by 0xDF6A91: forward_propagate_into(df_ref_d*) (fwprop.c:1342) ==50122==by 0xDF7A07: fwprop_addr() (fwprop.c:1528) ==50122==by 0x9021DF: execute_one_pass(opt_pass*) (passes.c:2337) ==50122==by 0x902644: execute_pass_list(opt_pass*) (passes.c:2389) ==50122==by 0x902656: execute_pass_list(opt_pass*) (passes.c:2390) ==50122==by 0x6CC857: expand_function(cgraph_node*) (cgraphunit.c:1640) ==50122==by 0x6CE5FC: compile() (cgraphunit.c:1744) ==50122==by 0x6CEC94: finalize_compilation_unit() (cgraphunit.c:2119) ==50122==by 0x8992FA: write_global_declarations() (langhooks.c:322)
[Bug preprocessor/42921] No error with missing header and -MM
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42921 Shakthi Kannan changed: What|Removed |Added CC||skannan at redhat dot com --- Comment #3 from Shakthi Kannan 2013-05-08 05:30:25 UTC --- Confirmed. $ ./install/bin/gcc -MM -MF foo.d foo.c && echo succeeded || echo failed succeeded $ ./install/bin/gcc -v Using built-in specs. COLLECT_GCC=./install/bin/gcc COLLECT_LTO_WRAPPER=/home/mbuf/testing/gcc/42921/install/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc/configure --prefix=/home/mbuf/testing/gcc/42921/install Thread model: posix gcc version 4.9.0 20130507 (experimental) (GCC)
[Bug other/57202] New: Please make the intrinsics headers like immintrin.h be usable without compiler flags
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57202 Bug #: 57202 Summary: Please make the intrinsics headers like immintrin.h be usable without compiler flags Classification: Unclassified Product: gcc Version: 4.8.1 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: other AssignedTo: unassig...@gcc.gnu.org ReportedBy: thi...@kde.org Please make all headers for intrinsics be includable without special compiler flags. In other words, I want the following to work: $ gcc -fsyntax-only -include smmintrin.h -xc /dev/null In file included from :0:0: /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include/smmintrin.h:31:3: error: #error "SSE4.1 instruction set not enabled" Note it works with ICC: $ icc -fsyntax-only -include smmintrin.h -xc /dev/null && echo works works Not only that, please make all the intrinsics functions be defined and ready to be used. This is necessary so that the following source file could compile even if -msse4.1 is not passed on the command-line (adapted from http://gcc.gnu.org/gcc-4.8/changes.html): #include __attribute__ ((target ("default"))) int foo(void) { return 1; } __attribute__ ((target ("sse4.2"))) int foo(void) { __m128i v; _mm_blendv_epi8(v, v, v); return 2; } There are several reasons for that, number one among them that it makes the GCC 4.8 feature above actually useful for non-trivial code. Also, passing extra options on the command-line are simply not an option for C++ code (where the feature above is useful) if that code is moderately complex and uses inline functions, and those options cannot be used if LTO is to be used (bug 54231).
[Bug c/57201] Using --save-temps affects whether warning is printed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57201 --- Comment #2 from Ian Lance Taylor 2013-05-08 03:18:17 UTC --- I should have clarified that the warning is correct with --save-temps. When --save-temps is omitted, the warning is missing. That is wrong. There should be a warning in this case. The presence of "#define stdout stdout" should not inhibit a warning. Also, this is a regression, as GCC 4.6 does warn for this case (I didn't test 4.7).
[Bug c/57201] Using --save-temps affects whether warning is printed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57201 Paolo Carlini changed: What|Removed |Added Severity|trivial |normal
[Bug c/57201] Using --save-temps affects whether warning is printed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57201 Andrew Pinski changed: What|Removed |Added Keywords||diagnostic Severity|normal |trivial --- Comment #1 from Andrew Pinski 2013-05-08 01:01:49 UTC --- This is a hard problem to solve as with the integrated C preprocessor we track where the token came from but with -save-temps it is hard to track where the tokens came from.
[Bug c/57201] New: Using --save-temps affects whether warning is printed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57201 Bug #: 57201 Summary: Using --save-temps affects whether warning is printed Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: i...@airs.com Consider this C file: #include void f(void) { stdout; } When I compile it on my Ubuntu Precise system with GCC 4.8 branch with the -Wall option, I get no error. When I compile it with -Wall --save-temps, I get this: foo.c: In function ‘f’: foo.c:5:3: warning: statement with no effect [-Wunused-value] stdout; ^ This appears to happen because on my system has this line: #define stdout stdout When not using --save-temps, something about this is causing linemap_location_in_system_header_p to return true for "stdout" on line 5.
[Bug c/57200] [4.8/4.9 Regression] aggressive-loop-optimizations notes appear even when warning itself is suppressed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57200 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-07 Target Milestone|--- |4.9.0 Summary|[4.8/4.9] |[4.8/4.9 Regression] |aggressive-loop-optimizatio |aggressive-loop-optimizatio |ns notes appear even when |ns notes appear even when |warning itself is |warning itself is |suppressed |suppressed Ever Confirmed|0 |1 --- Comment #1 from Paolo Carlini 2013-05-07 23:08:40 UTC --- This issue is easy, isn't it? Something like: Index: tree-ssa-loop-niter.c === --- tree-ssa-loop-niter.c(revision 198676) +++ tree-ssa-loop-niter.c(working copy) @@ -2553,10 +2553,11 @@ do_warn_aggressive_loop_optimizations (struct loop return; gimple estmt = last_stmt (e->src); - warning_at (gimple_location (stmt), OPT_Waggressive_loop_optimizations, - "iteration %E invokes undefined behavior", - double_int_to_tree (TREE_TYPE (loop->nb_iterations), i_bound)); - inform (gimple_location (estmt), "containing loop"); + if (warning_at (gimple_location (stmt), OPT_Waggressive_loop_optimizations, + "iteration %E invokes undefined behavior", + double_int_to_tree (TREE_TYPE (loop->nb_iterations), + i_bound))) +inform (gimple_location (estmt), "containing loop"); loop->warned_aggressive_loop_optimizations = true; }
[Bug c++/57199] [4.8/4.9 Regression] Bogus warning: iteration NNNN invokes undefined behavior -Waggressive-loop-optimizations
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57199 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-07 Version|unknown |4.9.0 Summary|[4.8, 4.9] Bogus warning: |[4.8/4.9 Regression] Bogus |iteration invokes |warning: iteration |undefined behavior |invokes undefined behavior |-Waggressive-loop-optimizat |-Waggressive-loop-optimizat |ions|ions Ever Confirmed|0 |1
[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278 --- Comment #7 from Marc Glisse 2013-05-07 22:48:40 UTC --- (In reply to comment #6) > I'm surprised that > the 16-bit rotations aren't detected/folded into rotations (or rotate_left > (u16, 8) into a bswap16). See also PR 45216 for rotate, where the initial report is about rotate16, and the last comment is about a C++ regression likely related to the sizeof changes (it is folded too late for fold_binary of | to see the constant).
[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278 --- Comment #6 from Jakub Jelinek 2013-05-07 22:34:15 UTC --- To: unsigned char KASUMI_SBOX_S7[128]; unsigned short KASUMI_SBOX_S9[512]; static inline unsigned short rotate_left (unsigned short input, unsigned long rot) { return ((input << rot) | (input >> (8 * sizeof (unsigned short) - rot))); } static inline unsigned short reverse_bytes (unsigned short val) { return rotate_left (val, 8); } static inline unsigned short load_be (const unsigned char in[], unsigned long off) { return reverse_bytes (*((const unsigned short *)in + off)); } static inline void store_be (unsigned short in, unsigned char out[2]) { *(unsigned short *)out = reverse_bytes (in); } static inline void store_be4 (unsigned char out[], unsigned short x0, unsigned short x1, unsigned short x2, unsigned short x3) { store_be (x0, out + (0 * sizeof (unsigned short))); store_be (x1, out + (1 * sizeof (unsigned short))); store_be (x2, out + (2 * sizeof (unsigned short))); store_be (x3, out + (3 * sizeof (unsigned short))); } unsigned short FI (unsigned short I, unsigned short K) { unsigned short D9 = (I >> 7); unsigned char D7 = (I & 0x7F); D9 = KASUMI_SBOX_S9[D9] ^ D7; D7 = KASUMI_SBOX_S7[D7] ^ (D9 & 0x7F); D7 ^= (K >> 9); D9 = KASUMI_SBOX_S9[D9 ^ (K & 0x1FF)] ^ D7; D7 = KASUMI_SBOX_S7[D7] ^ (D9 & 0x7F); return (D7 << 9) | D9; } __attribute__((noinline, noclone)) void encrypt_n (unsigned short **EK, const unsigned char in[], unsigned char out[], unsigned long blocks) { unsigned long i, j; for (i = 0; i != blocks; ++i) { unsigned short B0 = load_be (in, 0); unsigned short B1 = load_be (in, 1); unsigned short B2 = load_be (in, 2); unsigned short B3 = load_be (in, 3); for (j = 0; j != 8; j += 2) { const unsigned short *K = &(*EK)[8 * j]; unsigned short R = B1 ^ (rotate_left (B0, 1) & K[0]); unsigned short L = B0 ^ (rotate_left (R, 1) | K[1]); L = FI (L ^ K[2], K[3]) ^ R; R = FI (R ^ K[4], K[5]) ^ L; L = FI (L ^ K[6], K[7]) ^ R; R = B2 ^= R; L = B3 ^= L; R = FI (R ^ K[10], K[11]) ^ L; L = FI (L ^ K[12], K[13]) ^ R; R = FI (R ^ K[14], K[15]) ^ L; R ^= (rotate_left (L, 1) & K[8]); L ^= (rotate_left (R, 1) | K[9]); B0 ^= L; B1 ^= R; } store_be4 (out, B0, B1, B2, B3); in += 8; out += 8; } } unsigned char in[4096], out[4096]; int main () { unsigned short EKb[64], *EK = EKb; __builtin_memset (EKb, 0, sizeof EKb); asm volatile ("" : : : "memory"); int i; for (i = 0; i < 10; i++) encrypt_n (&EK, in, out, 4096 / 8); return 0; } actually (note different code in store_be and load_be). I'm surprised that the 16-bit rotations aren't detected/folded into rotations (or rotate_left (u16, 8) into a bswap16).
[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278 --- Comment #5 from Marek Polacek 2013-05-07 22:31:37 UTC --- Created attachment 30049 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30049 kasumi_clang.s Clang assembly
[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278 --- Comment #4 from Marek Polacek 2013-05-07 22:31:05 UTC --- Created attachment 30048 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30048 kasumi_gcc.s Adding GCC assembly
[Bug rtl-optimization/55278] [4.8/4.9 Regression] Botan performance regressions apparently due to LRA
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55278 Marek Polacek changed: What|Removed |Added CC||mpolacek at gcc dot gnu.org --- Comment #3 from Marek Polacek 2013-05-07 22:28:56 UTC --- Reduced by Jakub to this: unsigned char KASUMI_SBOX_S7[128]; unsigned short KASUMI_SBOX_S9[512]; static inline unsigned short rotate_left (unsigned short input, unsigned long rot) { return ((input << rot) | (input >> (8 * sizeof (unsigned short) - rot))); } static inline unsigned short reverse_bytes (unsigned short val) { return rotate_left (val, 8); } static inline unsigned short load_be (const unsigned char in[], unsigned long off) { return reverse_bytes (*((in) + off)); } static inline void store_be (unsigned short in, unsigned char out[2]) { *out = reverse_bytes (in); } static inline void store_be4 (unsigned char out[], unsigned short x0, unsigned short x1, unsigned short x2, unsigned short x3) { store_be (x0, out + (0 * sizeof (unsigned short))); store_be (x1, out + (1 * sizeof (unsigned short))); store_be (x2, out + (2 * sizeof (unsigned short))); store_be (x3, out + (3 * sizeof (unsigned short))); } unsigned short FI (unsigned short I, unsigned short K) { unsigned short D9 = (I >> 7); unsigned char D7 = (I & 0x7F); D9 = KASUMI_SBOX_S9[D9] ^ D7; D7 = KASUMI_SBOX_S7[D7] ^ (D9 & 0x7F); D7 ^= (K >> 9); D9 = KASUMI_SBOX_S9[D9 ^ (K & 0x1FF)] ^ D7; D7 = KASUMI_SBOX_S7[D7] ^ (D9 & 0x7F); return (D7 << 9) | D9; } __attribute__((noinline, noclone)) void encrypt_n (unsigned short **EK, const unsigned char in[], unsigned char out[], unsigned long blocks) { unsigned long i, j; for (i = 0; i != blocks; ++i) { unsigned short B0 = load_be (in, 0); unsigned short B1 = load_be (in, 1); unsigned short B2 = load_be (in, 2); unsigned short B3 = load_be (in, 3); for (j = 0; j != 8; j += 2) { const unsigned short *K = &(*EK)[8 * j]; unsigned short R = B1 ^ (rotate_left (B0, 1) & K[0]); unsigned short L = B0 ^ (rotate_left (R, 1) | K[1]); L = FI (L ^ K[2], K[3]) ^ R; R = FI (R ^ K[4], K[5]) ^ L; L = FI (L ^ K[6], K[7]) ^ R; R = B2 ^= R; L = B3 ^= L; R = FI (R ^ K[10], K[11]) ^ L; L = FI (L ^ K[12], K[13]) ^ R; R = FI (R ^ K[14], K[15]) ^ L; R ^= (rotate_left (L, 1) & K[8]); L ^= (rotate_left (R, 1) | K[9]); B0 ^= L; B1 ^= R; } store_be4 (out, B0, B1, B2, B3); in += 8; out += 8; } } unsigned char in[4096], out[4096]; int main () { unsigned short EKb[64], *EK = EKb; __builtin_memset (EKb, 0, sizeof EKb); asm volatile ("" : : : "memory"); int i; for (i = 0; i < 10; i++) encrypt_n (&EK, in, out, 4096 / 8); return 0; } Using -O3 -finline-functions -D_REENTRANT -Wno-long-long -W -Wall -fPIC -fvisibility=hidden, then trunk gcc: $ time ./a.out real0m15.727s user0m15.639s sys0m0.004s while with trunk clang: $ time ./a.out real0m7.864s user0m7.796s sys0m0.005s
[Bug c/57200] New: [4.8/4.9] aggressive-loop-optimizations notes appear even when warning itself is suppressed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57200 Bug #: 57200 Summary: [4.8/4.9] aggressive-loop-optimizations notes appear even when warning itself is suppressed Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: ppluzhni...@google.com Test: int x[10]; void fn () { int i; for (i = 0; i < 100; ++i) x[i] = 1; } Using trunk at r198689: gcc -O2 -c t.c t.c: In function ‘fn’: t.c:8:10: warning: iteration 10u invokes undefined behavior [-Waggressive-loop-optimizations] x[i] = 1; ^ t.c:7:3: note: containing loop for (i = 0; i < 100; ++i) ^ Looks good. But this doesn't: gcc -O2 -c t.c -w t.c: In function ‘fn’: t.c:7:3: note: containing loop for (i = 0; i < 100; ++i) ^ A note suddenly appears from "nowhere" :-(
[Bug c++/57199] New: [4.8, 4.9] Bogus warning: iteration NNNN invokes undefined behavior -Waggressive-loop-optimizations
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57199 Bug #: 57199 Summary: [4.8, 4.9] Bogus warning: iteration invokes undefined behavior -Waggressive-loop-optimizations Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: ppluzhni...@google.com Google ref: b/8856275 Test case: typedef decltype(sizeof(0)) size_t; struct Foo { ~Foo(); // comment out -> problem disappears int x[20]; }; template struct InlinedVector { inline InlinedVector() : size_(0) { } inline size_t size() const { return size_; } T* mutable_array(); void resize(size_t n) { size_t s = size(); DestroyElements(mutable_array() + n, s - n); } static void DestroyElements(T* ptr, size_t num) { for (size_t i = 0; i < num; i++) { ptr[i].~T(); } } size_t size_; }; struct CP { void Add(); InlinedVector foo_; }; void CP::Add() { foo_.resize(foo_.size() + 1); } Using trunk r198689: g++ -std=c++11 -O2 -c tt.cc tt.cc: In member function ‘void CP::Add()’: tt.cc:21:7: warning: iteration 230584300921369396ul invokes undefined behavior [-Waggressive-loop-optimizations] ptr[i].~T(); ^ tt.cc:20:5: note: containing loop for (size_t i = 0; i < num; i++) { ^
[Bug c++/54427] Expose more vector extensions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54427 --- Comment #13 from Marc Glisse 2013-05-07 21:59:08 UTC --- (In reply to comment #11) > - support &&, ||, ! A patch was posted at: http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00783.html but the only answer was against supporting the logical operators for vectors.
[Bug c++/57198] New: ICE in warn_logical_operator for vectors
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57198 Bug #: 57198 Summary: ICE in warn_logical_operator for vectors Classification: Unclassified Product: gcc Version: 4.9.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: gli...@gcc.gnu.org g++ crashes on the following program: typedef int vec __attribute__((vector_size(4*sizeof(int; void f(vec* a, vec* b, vec* c){ *c = (*a < *b) && (*b < *a); } http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00783.html includes a fix, but it is probably not the right place for that check if we keep this code invalid.
[Bug fortran/57197] New: [Fortran-Dev][Regression] ICE in record_reference, at cgraphbuild.c:66
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57197 Bug #: 57197 Summary: [Fortran-Dev][Regression] ICE in record_reference, at cgraphbuild.c:66 Classification: Unclassified Product: gcc Version: fortran-dev Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org The example from bug 45170 comment 41 fails with an ICE on Fortran-Dev internal compiler error: in record_reference, at cgraphbuild.c:66 It works with GCC 4.8/4.9 module thing implicit none character(len=:), allocatable :: array_of_chars(:) contains subroutine allocatestuff() implicit none integer :: length_names = 15 integer :: number_arrays = 5 allocate(character(15) :: array_of_chars(number_arrays)) !allocate(character(length_names) :: array_of_chars(number_arrays)) end subroutine allocatestuff end module thing program test1 implicit none call allocatestuff() end program test1
[Bug c++/57196] [4.8 regression] Bogus "aggregate ... has incomplete type and cannot be defined"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57196 Daniel Krügler changed: What|Removed |Added CC||daniel.kruegler at ||googlemail dot com --- Comment #1 from Daniel Krügler 2013-05-07 20:52:28 UTC --- Here a more simplified version that reproduces the problem: //--- #include template struct set { set() = default; set(std::initializer_list){} }; struct string { string(const char*){} ~string(){} }; typedef decltype(sizeof(0)) size_t; template struct EqHelper { }; int IsNullLiteralHelper(...); void Fn() { EqHelper{1})>eq1; // ok EqHelper())> eq2; // ok EqHelper{"foo"})> eq3; // error } //--- It seems to be relevant that string has a non-trivial destructor and that set has an initializer-list constructor (When e.g. replacing set(std::initializer_list){} by set(T){} causes the code to be accepted)
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 --- Comment #7 from Bill Schmidt 2013-05-07 20:13:10 UTC --- Ah, and thanks for noting the compile warning. I would have expected that to get caught in bootstrap, odd. I'll fix that.
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 Bill Schmidt changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||wschmidt at gcc dot gnu.org Resolution||FIXED --- Comment #6 from Bill Schmidt 2013-05-07 20:11:09 UTC --- OK, thanks! Current trunk has a half-good fix that I put in this morning. The proposed patch fixes it the right way. Good to hear that both versions appear to solve this problem! Closing as resolved. Please feel free to re-open if the problem comes back.
[Bug c++/57196] New: [4.8 regression] Bogus "aggregate ... has incomplete type and cannot be defined"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57196 Bug #: 57196 Summary: [4.8 regression] Bogus "aggregate ... has incomplete type and cannot be defined" Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: ppluzhni...@google.com Google ref: b/8853908 Test case reduced from gUnit. #include #include using std::set; using std::string; int& IsNullLiteralHelper(...); template struct EqHelper { }; void Fn() { EqHelper{1})>eq1; // ok EqHelper())> eq2; // ok EqHelper{"foo"})> eq3; // error } Using trunk built at r198689: g++ -std=c++11 -c tt.cc tt.cc: In function ‘void Fn()’: tt.cc:14:60: error: aggregate ‘EqHelper >(std::initializer_list >{((const std::basic_string*)(& const std::basic_string [1]{std::basic_string(((const char*)"foo"), (*(const std::allocator*)(& std::allocator(})), 1u}, (*(const std::less >*)(& std::less >())), (*(const std::allocator >*)(& std::allocator >())> eq3’ has incomplete type and cannot be defined EqHelper{"foo"})> eq3; ^
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 --- Comment #5 from Joost VandeVondele 2013-05-07 19:16:31 UTC --- Current trunk (without the patch) seems to fix also the original problem. At least for this case, the proposed patch seems not necessary. I think the bug can be closed as fixed.
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 --- Comment #4 from Joost VandeVondele 2013-05-07 19:01:56 UTC --- BTW, on trunk: ../../gcc/gcc/gimple-ssa-strength-reduction.c: In function ‘void analyze_candidates_and_replace()’: ../../gcc/gcc/gimple-ssa-strength-reduction.c:3394:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] It actually seems current trunk r198693 also works for the testcase (with and without your patch)?
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 --- Comment #3 from Joost VandeVondele 2013-05-07 18:54:55 UTC --- (In reply to comment #2) > Created attachment 30047 [details] > Proposed patch I'll give it a try. Meanwhile, this might be an easy way to get the testcase (and rename to test.f90) wget http://gcc.gnu.org/bugzilla/attachment.cgi?id=30045
[Bug go/57194] go binaries give "no debug info in ELF executable errno -1"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57194 Ian Lance Taylor changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-07 Ever Confirmed|0 |1 --- Comment #1 from Ian Lance Taylor 2013-05-07 18:47:42 UTC --- Note that in general Go requires debug info. It will not work to build a Go program without -g, nor will it work to strip a Go program.
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 --- Comment #2 from Bill Schmidt 2013-05-07 18:23:21 UTC --- Created attachment 30047 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30047 Proposed patch Hi Joost, Can you please apply the proposed patch and see if this fixes your problem? My browser is having trouble downloading your attachment (doesn't grok text/x-fortran and won't allow me to set an association for it). Thanks, Bill
[Bug c++/55942] [C++11] sorry, unimplemented: calling a member function of the object being constructed in a constant expression
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55942 Paolo Carlini changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-07 Ever Confirmed|0 |1
[Bug rtl-optimization/57193] [4.5/4.6/4.7/4.8/4.9 Regression] suboptimal register allocation for SSE registers
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57193 H.J. Lu changed: What|Removed |Added CC||hjl.tools at gmail dot com Summary|suboptimal register |[4.5/4.6/4.7/4.8/4.9 |allocation for SSE |Regression] suboptimal |registers |register allocation for SSE ||registers --- Comment #2 from H.J. Lu 2013-05-07 18:17:11 UTC --- It is caused by revision 156641: http://gcc.gnu.org/ml/gcc-cvs/2010-02/msg00222.html
[Bug lto/57084] 483. xalancbmk run fails with -O2 -flto for i686
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57084 Martin Jambor changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc-p ||atches/2013-05/msg00366.htm ||l --- Comment #5 from Martin Jambor 2013-05-07 17:56:41 UTC --- Proposed fix submitted to the mailing list: http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00366.html
[Bug fortran/57142] [4.7/4.8/4.9 Regression] SIZE/SHAPE overflow despite kind=8
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57142 Tobias Burnus changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #6 from Tobias Burnus 2013-05-07 17:29:22 UTC --- FIXED on the trunk (4.9) and on the 4.7/4.8 branch.
[Bug fortran/57142] [4.7/4.8/4.9 Regression] SIZE/SHAPE overflow despite kind=8
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57142 --- Comment #5 from Tobias Burnus 2013-05-07 17:28:51 UTC --- Author: burnus Date: Tue May 7 17:28:12 2013 New Revision: 198690 URL: http://gcc.gnu.org/viewcvs?rev=198690&root=gcc&view=rev Log: 2013-05-07 Tobias Burnus Backport from mainline 2013-05-02 Tobias Burnus PR fortran/57142 * simplify.c (gfc_simplify_size): Renamed from simplify_size; fix kind=8 handling. (gfc_simplify_size): New function. (gfc_simplify_shape): Add range check. 2013-05-07 Tobias Burnus Backport from mainline 2013-05-02 Tobias Burnus PR fortran/57142 * gfortran.dg/size_kind_2.f90: New. * gfortran.dg/size_kind_3.f90: New. Added: branches/gcc-4_7-branch/gcc/testsuite/gfortran.dg/size_kind_2.f90 branches/gcc-4_7-branch/gcc/testsuite/gfortran.dg/size_kind_3.f90 Modified: branches/gcc-4_7-branch/gcc/fortran/ChangeLog branches/gcc-4_7-branch/gcc/fortran/resolve.c branches/gcc-4_7-branch/gcc/fortran/simplify.c branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
[Bug fortran/57142] [4.7/4.8/4.9 Regression] SIZE/SHAPE overflow despite kind=8
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57142 --- Comment #4 from Tobias Burnus 2013-05-07 17:26:40 UTC --- Author: burnus Date: Tue May 7 16:36:48 2013 New Revision: 198687 URL: http://gcc.gnu.org/viewcvs?rev=198687&root=gcc&view=rev Log: 2013-05-07 Tobias Burnus Backport from mainline 2013-05-02 Tobias Burnus PR fortran/57142 * simplify.c (gfc_simplify_size): Renamed from simplify_size; fix kind=8 handling. (gfc_simplify_size): New function. (gfc_simplify_shape): Add range check. 2013-05-07 Tobias Burnus Backport from mainline 2013-05-02 Tobias Burnus PR fortran/57142 * gfortran.dg/size_kind_2.f90: New. * gfortran.dg/size_kind_3.f90: New. Added: branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/size_kind_2.f90 branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/size_kind_3.f90 Modified: branches/gcc-4_8-branch/gcc/fortran/ChangeLog branches/gcc-4_8-branch/gcc/fortran/resolve.c branches/gcc-4_8-branch/gcc/fortran/simplify.c branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
[Bug bootstrap/54659] [4.8 Regression] Bootstrap with --disable-nls broken under Windows
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659 --- Comment #26 from dnovillo at google dot com 2013-05-07 17:10:07 UTC --- On 2013-05-07 13:06 , roland at gnu dot org wrote: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659 > > --- Comment #25 from roland at gnu dot org 2013-05-07 17:06:56 UTC --- > I have been using a straightforward revert of r190487 to build on mingw with > --disable-nls. It works. > Thanks. Then I just need to confirm that this doesn't re-introduce http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54281. Richi, could you check that? Do you still have access to 4.1 host compilers?
[Bug bootstrap/54659] [4.8 Regression] Bootstrap with --disable-nls broken under Windows
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659 --- Comment #25 from roland at gnu dot org 2013-05-07 17:06:56 UTC --- I have been using a straightforward revert of r190487 to build on mingw with --disable-nls. It works.
[Bug fortran/57094] [Fortran-Dev] ICE: in lhd_incomplete_type_error, at langhooks.c:203
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57094 Tobias Burnus changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #4 from Tobias Burnus 2013-05-07 17:04:13 UTC --- That should now be fixed since the commit http://gcc.gnu.org/r198688 / http://gcc.gnu.org/ml/fortran/2013-05/msg00031.html (I think some other patches before also contributed to this fix.) (In reply to comment #1) > Note that the test compiles, but generates a wrong code, without the module: I think it works - but I am too lazy to look through the test case to understand whether it indeed works.
[Bug c++/55942] [C++11] sorry, unimplemented: calling a member function of the object being constructed in a constant expression
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55942 Matt Clarkson changed: What|Removed |Added CC||mattyclarkson at gmail dot ||com --- Comment #1 from Matt Clarkson 2013-05-07 17:04:11 UTC --- I just came across this too.
[Bug bootstrap/54659] [4.8 Regression] Bootstrap with --disable-nls broken under Windows
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659 Diego Novillo changed: What|Removed |Added Status|REOPENED|WAITING --- Comment #24 from Diego Novillo 2013-05-07 16:56:49 UTC --- The patch I just attached reverts the commit that caused this problem, but I am unable to test it properly. I need help with: 1- Making sure this reversal does not re-introduce http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54281 2- Testing it on MinGW. I have no access to this system.
[Bug bootstrap/54659] [4.8 Regression] Bootstrap with --disable-nls broken under Windows
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659 Diego Novillo changed: What|Removed |Added Attachment #29020|0 |1 is obsolete|| --- Comment #23 from Diego Novillo 2013-05-07 16:55:07 UTC --- Created attachment 30046 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30046 Proposed fix. Revert trunk commit r190487
[Bug target/57150] GCC when targeting power7 spills long double using VSX instructions.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57150 Michael Meissner changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #5 from Michael Meissner 2013-05-07 16:26:02 UTC --- Fixed in subversion id 198593.
[Bug ada/57188] [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188 --- Comment #5 from Eric Botcazou 2013-05-07 16:04:07 UTC --- > This seems to argue for reverting or at least reworking the change. I > suppose I'll withhold my patch until it's decided how to proceed. I'd post it on the list in any case and see what the other maintainers think.
[Bug other/57195] New: Mode attributes with specific mode iterator can not be used as mode iterators in *.md files
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57195 Bug #: 57195 Summary: Mode attributes with specific mode iterator can not be used as mode iterators in *.md files Classification: Unclassified Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassig...@gcc.gnu.org ReportedBy: ubiz...@gmail.com There is a strange undocumented limitation when using mode attributes with specific mode iterator as mode iterators in *.md files. As an example from i386.md, following RTX is accepted: (define_insn_and_split "copysign3_const" [(set (match_operand:CSGNMODE 0 "register_operand" "=x") (unspec:CSGNMODE [(match_operand: 1 "vector_move_operand" "xmC") (match_operand:CSGNMODE 2 "register_operand" "0") (match_operand: 3 "nonimmediate_operand" "xm")] UNSPEC_COPYSIGN))] ...) However, when equivalent named mode attribute (i.e. below) is used in place of a mode iterator: (define_insn_and_split "copysign3_const" [(set (match_operand:CSGNMODE 0 "register_operand" "=x") (unspec:CSGNMODE [(match_operand: 1 "vector_move_operand" "xmC") (match_operand:CSGNMODE 2 "register_operand" "0") (match_operand: 3 "nonimmediate_operand" "xm")] UNSPEC_COPYSIGN))] ...) compilation breaks with: build/genconditions ../../gcc-svn/branches/gcc-4_8-branch/gcc/config/i386/i386.md > tmp-condmd.c ../../gcc-svn/branches/gcc-4_8-branch/gcc/config/i386/i386.md:8866: unknown mode ` 1 "vector_move_operand" "xmC")' The iterators are defined as: (define_mode_iterator CSGNMODE [SF DF TF]) (define_mode_attr CSGNVMODE [(SF "V4SF") (DF "V2DF") (TF "TF")]) I would like to use mode attribute with named mode in the following pattern: (define_insn "*vec_extract_zext" [(set (match_operand:SWI48 0 "register_operand" "=r") (zero_extend:SWI48 (vec_select: (match_operand:PEXTR_MODE 1 "register_operand" "x") (parallel [(match_operand:SI 2 "const_0_to__operand")]] where ssescalarmode mode attribute applies to PEXTR_MODE mode iterator, and not to SWI48.
[Bug ada/57188] [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188 --- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE 2013-05-07 15:09:04 UTC --- > --- Comment #3 from Eric Botcazou 2013-05-07 > 15:06:45 UTC --- >> But what's the justification for the relevant change, which wasn't >> posted to gcc-patches AFAICS? >> >> 2013-04-23 Eric Botcazou >> Pascal Obry >> >> * gcc-interface/Makefile.in (targ): Fix target name check. >> >> Having to deal with the target_alias instead of the canonical form found >> in target seems rather counterintuitive and fragile to me. > > The ChangeLog entry is misleading, neither Pascal nor I have anything to do > with the change. Yes, this is very fragile and has already caused various > issues. This seems to argue for reverting or at least reworking the change. I suppose I'll withhold my patch until it's decided how to proceed. Rainer
[Bug bootstrap/54659] [4.8 Regression] Bootstrap with --disable-nls broken under Windows
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54659 --- Comment #22 from Diego Novillo 2013-05-07 15:07:54 UTC --- Looking at this today.
[Bug ada/57188] [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188 --- Comment #3 from Eric Botcazou 2013-05-07 15:06:45 UTC --- > But what's the justification for the relevant change, which wasn't > posted to gcc-patches AFAICS? > > 2013-04-23 Eric Botcazou > Pascal Obry > > * gcc-interface/Makefile.in (targ): Fix target name check. > > Having to deal with the target_alias instead of the canonical form found > in target seems rather counterintuitive and fragile to me. The ChangeLog entry is misleading, neither Pascal nor I have anything to do with the change. Yes, this is very fragile and has already caused various issues.
[Bug ada/57188] [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188 --- Comment #2 from ro at CeBiTec dot Uni-Bielefeld.DE 2013-05-07 14:57:20 UTC --- > --- Comment #1 from Eric Botcazou 2013-05-06 > 16:55:04 UTC --- >> This doesn't happen in sparcv9-sun-solaris2* or i386-pc-solaris2* >> configurations. > > gcc-interface/Makefile.in was a little changed so you probably need to adjust > the relevant regexp here: > > # x86 and x86-64 solaris > ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(arch) $(osys))),) > LIBGNAT_TARGET_PAIRS_COMMON = \ That was it indeed. The following patch restored amd64-pc-solaris2.10 bootstrap for, and also survived i386-pc-solaris2.11 bootstrap: diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in @@ -1098,7 +1098,7 @@ ifeq ($(strip $(filter-out sparc% sun so endif # x86 and x86-64 solaris -ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(arch) $(osys))),) +ifeq ($(strip $(filter-out %86 %x86_64 %amd64 solaris2%,$(arch) $(osys))),) LIBGNAT_TARGET_PAIRS_COMMON = \ a-intnam.ads Pascal Obry * gcc-interface/Makefile.in (targ): Fix target name check. Having to deal with the target_alias instead of the canonical form found in target seems rather counterintuitive and fragile to me. Rainer
[Bug preprocessor/41329] -M does not properly escape special characters.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41329 --- Comment #3 from Andreas Schwab 2013-05-07 12:14:50 UTC --- This is not true. POSIX does not *require* support for colon in a filename, but supporting it as an extension is perfectly ok.
[Bug rtl-optimization/57193] suboptimal register allocation for SSE registers
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57193 Richard Biener changed: What|Removed |Added Keywords||missed-optimization, ra Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-07 CC||vmakarov at gcc dot gnu.org Ever Confirmed|0 |1 --- Comment #1 from Richard Biener 2013-05-07 11:47:25 UTC --- Confirmed.
[Bug tree-optimization/57190] [4.9 Regression] verify_ssa failed: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57190 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #2 from Richard Biener 2013-05-07 11:24:00 UTC --- Author: rguenth Date: Tue May 7 11:23:39 2013 New Revision: 198675 URL: http://gcc.gnu.org/viewcvs?rev=198675&root=gcc&view=rev Log: 2013-05-07 Richard Biener PR middle-end/57190 * tree-eh.c (sink_clobbers): Properly propagate SSA_NAME_OCCURS_IN_ABNORMAL_PHI. * g++.dg/torture/pr57190.C: New testcase. Added: trunk/gcc/testsuite/g++.dg/torture/pr57190.C Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-eh.c
[Bug preprocessor/41329] -M does not properly escape special characters.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41329 Shakthi Kannan changed: What|Removed |Added CC||skannan at redhat dot com --- Comment #2 from Shakthi Kannan 2013-05-07 11:20:11 UTC --- POSIX standard doesn't allow colon as part of the filename. http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_276
[Bug go/57194] New: go binaries give "no debug info in ELF executable errno -1"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57194 Bug #: 57194 Summary: go binaries give "no debug info in ELF executable errno -1" Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: go AssignedTo: i...@airs.com ReportedBy: al...@archlinux.org Since revision r195931, running anything compiled with gccgo without any compile flags gives: # ./a.out no debug info in ELF executable errno -1 fatal error: no debug info in ELF executable Adding "-g" to the compile line results in a working binary, but stripping this binary results in the same error.
[Bug tree-optimization/57149] [4.8/4.9 Regression] wrong -Wmaybe-uninitialized warning with -Os
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57149 Jakub Jelinek changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #6 from Jakub Jelinek 2013-05-07 10:40:10 UTC --- Author: jakub Date: Tue May 7 10:30:13 2013 New Revision: 198671 URL: http://gcc.gnu.org/viewcvs?rev=198671&root=gcc&view=rev Log: PR tree-optimization/57149 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline. (can_skip_redundant_opnd, compute_uninit_opnds_pos, collect_phi_def_edges, execute_late_warn_uninitialized): Use uninit_undefined_value_p instead of ssa_undefined_value_p. * gcc.dg/pr57149.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr57149.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-uninit.c Author: jakub Date: Tue May 7 10:32:41 2013 New Revision: 198672 URL: http://gcc.gnu.org/viewcvs?rev=198672&root=gcc&view=rev Log: PR tree-optimization/57149 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline. (can_skip_redundant_opnd, compute_uninit_opnds_pos, collect_phi_def_edges, execute_late_warn_uninitialized): Use uninit_undefined_value_p instead of ssa_undefined_value_p. * gcc.dg/pr57149.c: New test. Added: branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/pr57149.c Modified: branches/gcc-4_8-branch/gcc/ChangeLog branches/gcc-4_8-branch/gcc/testsuite/ChangeLog branches/gcc-4_8-branch/gcc/tree-ssa-uninit.c
[Bug debug/57184] [4.8/4.9 Regression] ICE in expand_expr_real_1, at expr.c:10478
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57184 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #6 from Jakub Jelinek 2013-05-07 10:39:37 UTC --- Author: jakub Date: Tue May 7 08:28:01 2013 New Revision: 198666 URL: http://gcc.gnu.org/viewcvs?rev=198666&root=gcc&view=rev Log: PR debug/57184 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR for modifier == EXPAND_INITIALIZER. * gcc.dg/pr57184.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr57184.c Modified: trunk/gcc/ChangeLog trunk/gcc/expr.c trunk/gcc/testsuite/ChangeLog Author: jakub Date: Tue May 7 09:02:37 2013 New Revision: 198668 URL: http://gcc.gnu.org/viewcvs?rev=198668&root=gcc&view=rev Log: PR debug/57184 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR for modifier == EXPAND_INITIALIZER. * gcc.dg/pr57184.c: New test. Added: branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/pr57184.c Modified: branches/gcc-4_8-branch/gcc/ChangeLog branches/gcc-4_8-branch/gcc/expr.c branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
[Bug web/55933] Missing attachment download link
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55933 Shakthi Kannan changed: What|Removed |Added CC||skannan at redhat dot com --- Comment #4 from Shakthi Kannan 2013-05-07 10:15:41 UTC --- Right click and save as on "Created attachment # [details]" downloads a HTML page with the diff output. The attachment can be downloaded from the attachment table, but, it will be good to download the patch directly from the above comment itself.
[Bug ada/57187] [4.9 regression] Ada bootstrap broken on Solaris/SPARC: ICE in check_probability, at basic-block.h:941
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57187 Rainer Orth changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||DUPLICATE Target Milestone|--- |4.9.0 --- Comment #2 from Rainer Orth 2013-05-07 10:10:50 UTC --- Right, somehow I missed that patch. sparc-sun-solaris2.11 bootstrap with Ada is fine again. Thanks. Rainer *** This bug has been marked as a duplicate of bug 57154 ***
[Bug bootstrap/57154] [4.9 Regression] Bootstrap broken for powerpc64-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57154 Rainer Orth changed: What|Removed |Added CC||ro at gcc dot gnu.org --- Comment #15 from Rainer Orth 2013-05-07 10:10:50 UTC --- *** Bug 57187 has been marked as a duplicate of this bug. ***
[Bug fortran/56800] [fortran-dev Regression] move_alloc_13.f90 failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56800 Tobias Burnus changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #7 from Tobias Burnus 2013-05-07 10:01:47 UTC --- really mark as FIXED
[Bug fortran/56800] [fortran-dev Regression] move_alloc_13.f90 failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56800 --- Comment #6 from Tobias Burnus 2013-05-07 10:00:20 UTC --- FIXED by the following commit (on the Fortran-dev branch). Thanks for the report! Author: burnus Date: Tue May 7 09:37:19 2013 New Revision: 198669 URL: http://gcc.gnu.org/viewcvs?rev=198669&root=gcc&view=rev Log: 2013-05-07 Tobias Burnus * trans-array.c (gfc_conv_descriptor_stride_get, gfc_conv_descriptor_stride_set): Use elem_len, unless it is a nonstring intrinsic type for which size_in_bytes is used. (gfc_array_init_size): Set elem_len before handling the strides. * trans-expr.c (gfc_conv_subref_array_arg): Remove no-op extent shifting code. Modified: branches/fortran-dev/gcc/fortran/ChangeLog.fortran-dev branches/fortran-dev/gcc/fortran/trans-array.c branches/fortran-dev/gcc/fortran/trans-expr.c
[Bug libfortran/57174] [Fortran-Dev] RTE triggered by type component allocation
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57174 Tobias Burnus changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #2 from Tobias Burnus 2013-05-07 09:59:59 UTC --- FIXED by the following commit (on the Fortran-dev branch). Thanks for the report! Author: burnus Date: Tue May 7 09:37:19 2013 New Revision: 198669 URL: http://gcc.gnu.org/viewcvs?rev=198669&root=gcc&view=rev Log: 2013-05-07 Tobias Burnus * trans-array.c (gfc_conv_descriptor_stride_get, gfc_conv_descriptor_stride_set): Use elem_len, unless it is a nonstring intrinsic type for which size_in_bytes is used. (gfc_array_init_size): Set elem_len before handling the strides. * trans-expr.c (gfc_conv_subref_array_arg): Remove no-op extent shifting code. Modified: branches/fortran-dev/gcc/fortran/ChangeLog.fortran-dev branches/fortran-dev/gcc/fortran/trans-array.c branches/fortran-dev/gcc/fortran/trans-expr.c
[Bug rtl-optimization/57193] New: suboptimal register allocation for SSE registers
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57193 Bug #: 57193 Summary: suboptimal register allocation for SSE registers Classification: Unclassified Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: vermaelen.wou...@gmail.com This bug _might_ be related to PR56339, although that report talks about a regression compared to 4.7, while this bug seems to be a regression compared to 4.4. I was converting some hand-written asm code to SSE-intrinsics, but unfortunately the version using intrinsics generates worse code. It contains two unnecessary 'movdqa' instructions. I managed to reduce my test to this routine: //-- #include void test1(const __m128i* in1, const __m128i* in2, __m128i* out, __m128i f, __m128i zero) { __m128i c = _mm_avg_epu8(*in1, *in2); __m128i l = _mm_unpacklo_epi8(c, zero); __m128i h = _mm_unpackhi_epi8(c, zero); __m128i m = _mm_mulhi_epu16(l, f); __m128i n = _mm_mulhi_epu16(h, f); *out = _mm_packus_epi16(m, n); } //-- A (few days old) gcc snapshot generates the following code. Versions 4.5, 4.6 and 4.7 generate similar code: 0: 66 0f 6f 17 movdqa (%rdi),%xmm2 4: 66 0f e0 16 pavgb (%rsi),%xmm2 8: 66 0f 6f da movdqa %xmm2,%xmm3 c: 66 0f 68 d1 punpckhbw %xmm1,%xmm2 10: 66 0f 60 d9 punpcklbw %xmm1,%xmm3 14: 66 0f e4 d0 pmulhuw %xmm0,%xmm2 18: 66 0f 6f cb movdqa %xmm3,%xmm1 1c: 66 0f e4 c8 pmulhuw %xmm0,%xmm1 20: 66 0f 6f c1 movdqa %xmm1,%xmm0 24: 66 0f 67 c2 packuswb %xmm2,%xmm0 28: 66 0f 7f 02 movdqa %xmm0,(%rdx) 2c: c3 retq Gcc version 4.3 and 4.4 (and clang) generate the following optimal(?) code: 0: 66 0f 6f 17 movdqa (%rdi),%xmm2 4: 66 0f e0 16 pavgb (%rsi),%xmm2 8: 66 0f 6f da movdqa %xmm2,%xmm3 c: 66 0f 68 d1 punpckhbw %xmm1,%xmm2 10: 66 0f 60 d9 punpcklbw %xmm1,%xmm3 14: 66 0f e4 d8 pmulhuw %xmm0,%xmm3 18: 66 0f e4 c2 pmulhuw %xmm2,%xmm0 1c: 66 0f 67 d8 packuswb %xmm0,%xmm3 20: 66 0f 7f 1a movdqa %xmm3,(%rdx) 24: c3 retq
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 Joost VandeVondele changed: What|Removed |Added CC||Joost.VandeVondele at mat ||dot ethz.ch, wschmidt at ||linux dot vnet.ibm.com --- Comment #1 from Joost VandeVondele 2013-05-07 09:26:20 UTC --- I think this is triggered by slsr om r198586 as it shortly disappeared r198592 and reappeared after r198627.
[Bug tree-optimization/57186] implement load sinking in loops
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57186 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-07 CC||rguenth at gcc dot gnu.org Ever Confirmed|0 |1 --- Comment #4 from Richard Biener 2013-05-07 09:02:48 UTC --- In theory we have the SCCP patch to address at least case #1. It looks at loop exit PHIs and tries to replace them with the overall effect of the loop (using SCEV analysis, which is why it fails for loads). : # i_15 = PHI _4 = (long unsigned int) i_15; _5 = _4 * 4; _7 = v_6(D) + _5; r_9 = *_7; i_10 = i_15 + 1; if (i_10 != 64) goto ; else goto ; : # r_20 = PHI the complication with handling the above in existing passes (for example code sinking) is that the final value of _7 is needed to sink the dependent computations. So I think what SCCP should do here is look at the single-use chain from the defs of r_20 and analyze the evolution of the dependent loop variant SSA names, performing sinking of the dependencies as well. Conveniently LIM runs before SCCP and performs the necessary store sinking to allow handling of the last case.
[Bug ada/57188] [4.9 regression] Ada bootstrap broken on Solaris/x64: No_Implicit_Dynamic_Code violation
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57188 Richard Biener changed: What|Removed |Added Target Milestone|--- |4.9.0
[Bug rtl-optimization/57189] [4.9 Regression] Vector register is spilled for vector extract pattern
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57189 Richard Biener changed: What|Removed |Added Target Milestone|--- |4.9.0
[Bug rtl-optimization/57189] [4.9 Regression] Vector register is spilled for vector extract pattern
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57189 Richard Biener changed: What|Removed |Added Keywords||missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed||2013-05-07 Ever Confirmed|0 |1 --- Comment #1 from Richard Biener 2013-05-07 08:51:45 UTC --- In particular store forwarding will likely not work
[Bug tree-optimization/57190] [4.9 Regression] verify_ssa failed: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57190 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2013-05-07 Component|c++ |tree-optimization Target Milestone|--- |4.9.0 Summary|verify_ssa failed: |[4.9 Regression] verify_ssa |SSA_NAME_OCCURS_IN_ABNORMAL |failed: |_PHI should be set |SSA_NAME_OCCURS_IN_ABNORMAL ||_PHI should be set Ever Confirmed|0 |1 --- Comment #1 from Richard Biener 2013-05-07 08:49:52 UTC --- Mine.
[Bug middle-end/57192] [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 Richard Biener changed: What|Removed |Added Target Milestone|--- |4.9.0
[Bug middle-end/57192] New: [4.9 Regression] miscompilation at -O3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57192 Bug #: 57192 Summary: [4.9 Regression] miscompilation at -O3 Classification: Unclassified Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: joost.vandevond...@mat.ethz.ch Created attachment 30045 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30045 testcase, reproduce with 'gfortran -g -O3 orbital_pointers.f90 ; valgrind ./a.out' For the attached testcase, recently 4.9 trunk started generating the following error under valgrind: gfortran -g -O3 orbital_pointers.f90 ; valgrind ./a.out ==61245== Invalid write of size 4 ==61245==at 0x400EED: __orbital_pointers_MOD_init_orbital_pointers (orbital_pointers.f90:102) ==61245==by 0x401B71: main (orbital_pointers.f90:214) ==61245== Address 0x4da2ee4 is not stack'd, malloc'd or (recently) free'd when compiled at -O3 . Compiling with 4.8 branch, or 4.9 and -O2 doesn't cause this behavior. It has been reduced from CP2K after observing that CP2K segfaults due to a change made between rev198568 and rev198590 (but I'm not yet 100% sure this testcase is the root cause).
[Bug tree-optimization/57185] [4.8/4.9 Regression] ICE: Segmentation fault in add_field_for_reduction with -ftree-parallelize-loops=2 -fipa-pta
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57185 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #3 from Richard Biener 2013-05-07 08:12:59 UTC --- Author: rguenth Date: Mon May 6 15:06:41 2013 New Revision: 198630 URL: http://gcc.gnu.org/viewcvs?rev=198630&root=gcc&view=rev Log: 2013-05-06 Richard Biener PR tree-optimization/57185 * tree-parloops.c (add_field_for_reduction): Handle anonymous SSA names properly. * gcc.dg/autopar/pr57185.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/autopar/pr57185.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-parloops.c Author: rguenth Date: Tue May 7 08:11:46 2013 New Revision: 198665 URL: http://gcc.gnu.org/viewcvs?rev=198665&root=gcc&view=rev Log: 2013-05-07 Richard Biener Backport from mainline 2013-05-06 Richard Biener PR tree-optimization/57185 * tree-parloops.c (add_field_for_reduction): Handle anonymous SSA names properly. * gcc.dg/autopar/pr57185.c: New testcase. 2013-04-19 Richard Biener PR tree-optimization/57000 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals. * gcc.dg/tree-ssa/reassoc-27.c: New testcase. Added: branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/autopar/pr57185.c branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-27.c Modified: branches/gcc-4_8-branch/gcc/ChangeLog branches/gcc-4_8-branch/gcc/testsuite/ChangeLog branches/gcc-4_8-branch/gcc/tree-parloops.c
[Bug tree-optimization/57000] [4.8 Regression] ICE with -Ofast and -frounding-math
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57000 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||4.8.1 Resolution||FIXED --- Comment #9 from Richard Biener 2013-05-07 08:12:17 UTC --- Author: rguenth Date: Tue May 7 08:11:46 2013 New Revision: 198665 URL: http://gcc.gnu.org/viewcvs?rev=198665&root=gcc&view=rev Log: 2013-05-07 Richard Biener Backport from mainline 2013-05-06 Richard Biener PR tree-optimization/57185 * tree-parloops.c (add_field_for_reduction): Handle anonymous SSA names properly. * gcc.dg/autopar/pr57185.c: New testcase. 2013-04-19 Richard Biener PR tree-optimization/57000 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals. * gcc.dg/tree-ssa/reassoc-27.c: New testcase. Added: branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/autopar/pr57185.c branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-27.c Modified: branches/gcc-4_8-branch/gcc/ChangeLog branches/gcc-4_8-branch/gcc/testsuite/ChangeLog branches/gcc-4_8-branch/gcc/tree-parloops.c
[Bug ada/56474] [4.8/4.9 regression] bogus Storage_Error raised for record containing empty zero-based array
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56474 Eric Botcazou changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #21 from Eric Botcazou 2013-05-07 08:08:18 UTC --- Fixed at last.
[Bug ada/56474] [4.8/4.9 regression] bogus Storage_Error raised for record containing empty zero-based array
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56474 --- Comment #20 from Eric Botcazou 2013-05-07 08:07:45 UTC --- Author: ebotcazou Date: Tue May 7 08:03:15 2013 New Revision: 198664 URL: http://gcc.gnu.org/viewcvs?rev=198664&root=gcc&view=rev Log: PR ada/56474 * gcc-interface/decl.c (gnat_to_gnu_entity) : Use int_const_binop to shift bounds by 1 when they are integer constants. Added: branches/gcc-4_8-branch/gcc/testsuite/gnat.dg/specs/array3.ads - copied unchanged from r198663, trunk/gcc/testsuite/gnat.dg/specs/array3.ads Modified: branches/gcc-4_8-branch/gcc/ada/ChangeLog branches/gcc-4_8-branch/gcc/ada/gcc-interface/decl.c branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
[Bug ada/56474] [4.8/4.9 regression] bogus Storage_Error raised for record containing empty zero-based array
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56474 --- Comment #19 from Eric Botcazou 2013-05-07 08:07:27 UTC --- Author: ebotcazou Date: Tue May 7 07:59:37 2013 New Revision: 198663 URL: http://gcc.gnu.org/viewcvs?rev=198663&root=gcc&view=rev Log: PR ada/56474 * gcc-interface/decl.c (gnat_to_gnu_entity) : Use int_const_binop to shift bounds by 1 when they are integer constants. Added: trunk/gcc/testsuite/gnat.dg/specs/array3.ads Modified: trunk/gcc/ada/ChangeLog trunk/gcc/ada/gcc-interface/decl.c trunk/gcc/testsuite/ChangeLog
[Bug ada/56474] [4.8/4.9 regression] bogus Storage_Error raised for record containing empty zero-based array
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56474 Eric Botcazou changed: What|Removed |Added Component|middle-end |ada --- Comment #18 from Eric Botcazou 2013-05-07 07:50:39 UTC --- Recategorizing.
[Bug tree-optimization/57149] [4.8/4.9 Regression] wrong -Wmaybe-uninitialized warning with -Os
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57149 --- Comment #5 from Jakub Jelinek 2013-05-07 07:00:58 UTC --- The difference in *.uninit before/after that commit is small, just: @@ -78,7 +79,7 @@ fn4 (struct F * x, unsigned int k) goto ; : - # retval_25 = PHI <0(3), retval_26(6)> + # err_25 = PHI <0(3), retval_26(6)> _12 = y_9->f; if (_12 == 0) goto ; @@ -89,17 +90,17 @@ fn4 (struct F * x, unsigned int k) goto ; : - if (retval_25 > 0) + if (err_25 > 0) goto ; else goto ; : - retval_14 = fn0 (); + err_14 = fn0 (); : - # retval_2 = PHI - if (retval_2 < 0) + # err_2 = PHI + if (err_2 < 0) goto ; else goto ; and in both cases there is # retval_26 = PHI that is the reason for the warning. The important thing is that the retval decl has TREE_NO_WARNING set (because of the retval = retval uninit warning suppression), while err doesn't. Trying a patch not to consider TREE_NO_WARNING SSA_NAME_VARs ssa_undefined_value_p when inside of tree-ssa-uninit.c now.