[Bug fortran/49213] [OOP] gfortran rejects structure constructor expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49213 --- Comment #21 from Dominique d'Humieres dominiq at lps dot ens.fr --- The ICE for the test in comment 8 is now handled by PR64757.
[Bug c/64768] [4.8/4.9/5 Regression] internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64768 --- Comment #6 from joseph at codesourcery dot com joseph at codesourcery dot com --- On Sat, 24 Jan 2015, mpolacek at gcc dot gnu.org wrote: typedef int A[]; struct { int i; A a; } a; This is valid code for C99 and above / gnu89 (i.e., it's valid to use a typedef when declaring a flexible array member, whenever flexible array members are accepted).
[Bug fortran/64777] New: CO_BROADCAST: Finalization/dealloc of alloc components missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64777 Bug ID: 64777 Summary: CO_BROADCAST: Finalization/dealloc of alloc components missing Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org CC: pault at gcc dot gnu.org For -fcoarray=lib (GFC_COARRAY_LIB), the A argument of CO_BROADCAST shall be finalized and allocatable components freed, if this_image() != SOURCE_IMAGE.
[Bug c/64768] [4.8/4.9/5 Regression] internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64768 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Keywords|ice-on-invalid-code |ice-on-valid-code, ||rejects-valid --- Comment #7 from Marek Polacek mpolacek at gcc dot gnu.org --- (In reply to jos...@codesourcery.com from comment #6) On Sat, 24 Jan 2015, mpolacek at gcc dot gnu.org wrote: typedef int A[]; struct { int i; A a; } a; This is valid code for C99 and above / gnu89 (i.e., it's valid to use a typedef when declaring a flexible array member, whenever flexible array members are accepted). Yeah, initially I had the invalid testcase as in #c0, only then I discovered that we ICE even on a valid testcase with a typedef. Which means there are two issues: a) we ICE, b) we don't accept a code where a flexible array member is a typedef. I'm adjusting the keywords now.
[Bug ipa/64776] New: FAIL: gcc.dg/ipa/pr64307.c (internal compiler error) on x86_64-apple-darwin14
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64776 Bug ID: 64776 Summary: FAIL: gcc.dg/ipa/pr64307.c (internal compiler error) on x86_64-apple-darwin14 Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: dominiq at lps dot ens.fr CC: fxcoudert at gcc dot gnu.org, howarth at bromo dot med.uc.edu, iains at gcc dot gnu.org, marxin at gcc dot gnu.org Host: x86_64-apple-darwin14 Target: x86_64-apple-darwin14 Build: x86_64-apple-darwin14 Compiling the test gcc.dg/ipa/pr64307.c on x86_64-apple-darwin14 gives the following ICE [Book15] f90/bug% gcc5 -S -O0 -fipa-icf /opt/gcc/_clean/gcc/testsuite/gcc.dg/ipa/pr64307.c /opt/gcc/_clean/gcc/testsuite/gcc.dg/ipa/pr64307.c: In function 'real_part': /opt/gcc/_clean/gcc/testsuite/gcc.dg/ipa/pr64307.c:28:1: error: invalid argument to gimple call } ^ a # .MEM_2 = VDEF .MEM_1(D) retval.0_3 = real_part_2 (a); [tail call] /opt/gcc/_clean/gcc/testsuite/gcc.dg/ipa/pr64307.c:28:1: internal compiler error: verify_gimple failed The code compiles if gcc is configured with --enable-checking=release.
[Bug libffi/64779] New: libffi/src/x86/sysv.S:864: Error: junk at end of line, first unrecognized character is `@'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64779 Bug ID: 64779 Summary: libffi/src/x86/sysv.S:864: Error: junk at end of line, first unrecognized character is `@' Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: critical Priority: P3 Component: libffi Assignee: unassigned at gcc dot gnu.org Reporter: gerald at pfeifer dot com CC: rth at gcc dot gnu.org Since the last set of libffi changes, for about 10 days, bootstrap fails on i386-unknown-freebsd10.0: libtool: compile: /scratch2/tmp/gerald/OBJ-0124-0939/./gcc/xgcc -B/scratch2/tmp /gerald/OBJ-0124-0939/./gcc/ -B/home/gerald/gcc-ref10-i386/i386-unknown-freebsd1 0.1/bin/ -B/home/gerald/gcc-ref10-i386/i386-unknown-freebsd10.1/lib/ -isystem /h ome/gerald/gcc-ref10-i386/i386-unknown-freebsd10.1/include -isystem /home/gerald /gcc-ref10-i386/i386-unknown-freebsd10.1/sys-include -DHAVE_CONFIG_H -I. -I/scra tch2/tmp/gerald/gcc-HEAD/libffi -I. -I/scratch2/tmp/gerald/gcc-HEAD/libffi/inclu de -Iinclude -I/scratch2/tmp/gerald/gcc-HEAD/libffi/src -I. -I/scratch2/tmp/gera ld/gcc-HEAD/libffi/include -Iinclude -I/scratch2/tmp/gerald/gcc-HEAD/libffi/src -g -O2 -MT src/x86/sysv.lo -MD -MP -MF src/x86/.deps/sysv.Tpo -c /scratch2/tmp/g erald/gcc-HEAD/libffi/src/x86/sysv.S -fPIC -DPIC -o src/x86/.libs/sysv.o /scratch2/tmp/gerald/gcc-HEAD/libffi/src/x86/sysv.S: Assembler messages: /scratch2/tmp/gerald/gcc-HEAD/libffi/src/x86/sysv.S:864: Error: junk at end of l ine, first unrecognized character is `@' /scratch2/tmp/gerald/gcc-HEAD/libffi/src/x86/sysv.S:886: Error: junk at end of l ine, first unrecognized character is `@' /scratch2/tmp/gerald/gcc-HEAD/libffi/src/x86/sysv.S:898: Error: junk at end of l ine, first unrecognized character is `@' /scratch2/tmp/gerald/gcc-HEAD/libffi/src/x86/sysv.S:910: Error: junk at end of l ine, first unrecognized character is `@' /scratch2/tmp/gerald/gcc-HEAD/libffi/src/x86/sysv.S:938: Error: junk at end of l ine, first unrecognized character is `@' /scratch2/tmp/gerald/gcc-HEAD/libffi/src/x86/sysv.S:950: Error: junk at end of l ine, first unrecognized character is `@' /scratch2/tmp/gerald/gcc-HEAD/libffi/src/x86/sysv.S:964: Error: junk at end of l ine, first unrecognized character is `@' /scratch2/tmp/gerald/gcc-HEAD/libffi/src/x86/sysv.S:983: Error: junk at end of l ine, first unrecognized character is `@' /scratch2/tmp/gerald/gcc-HEAD/libffi/src/x86/sysv.S:1007: Error: junk at end of line, first unrecognized character is `@' Makefile:1177: recipe for target 'src/x86/sysv.lo' failed gmake[4]: *** [src/x86/sysv.lo] Error 1 gmake[4]: Leaving directory '/scratch2/tmp/gerald/OBJ-0124-0939/i386-unknown-fre ebsd10.1/libffi'
[Bug ipa/64776] FAIL: gcc.dg/ipa/pr64307.c (internal compiler error) on x86_64-apple-darwin14
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64776 Dominique d'Humieres dominiq at lps dot ens.fr changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-01-24 Ever confirmed|0 |1 --- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr --- Confirmed per comment 1.
[Bug libgcc/64598] var-tracking.c has internal compiler error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64598 --- Comment #10 from hayder.alkhalissi at googlemail dot com --- Guys, I still need your help.
[Bug libfortran/64770] [5 Regression] Segmentation fault when opening a file with status=new and the file exists.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64770 Janne Blomqvist jb at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #3 from Janne Blomqvist jb at gcc dot gnu.org --- Fixed on trunk, closing.
[Bug c/64778] New: ICE on invalid code on x86_64-linux-gnu: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in create_tmp_from_val, at gimplify.c:491
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64778 Bug ID: 64778 Summary: ICE on invalid code on x86_64-linux-gnu: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in create_tmp_from_val, at gimplify.c:491 Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: su at cs dot ucdavis.edu The following (invalid) code causes an ICE when compiled with the current gcc trunk on x86_64-linux-gnu. It is a regression from 4.9.x. $ gcc-trunk -v Using built-in specs. COLLECT_GCC=gcc-trunk COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/5.0.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc-trunk/configure --prefix=/usr/local/gcc-trunk --enable-languages=c,c++ --disable-werror --enable-multilib Thread model: posix gcc version 5.0.0 20150122 (experimental) [trunk revision 220011] (GCC) $ $ gcc-4.9 -c small.c small.c: In function ‘foo’: small.c:4:13: error: expected expression before ‘,’ token a ^= foo (,); ^ small.c:4:8: error: too many arguments to function ‘foo’ a ^= foo (,); ^ small.c:1:5: note: declared here int foo (int p) ^ small.c:4: confused by earlier errors, bailing out $ $ gcc-trunk -c small.c small.c: In function ‘foo’: small.c:4:13: error: expected expression before ‘,’ token a ^= foo (,); ^ small.c:4:8: error: too many arguments to function ‘foo’ a ^= foo (,); ^ small.c:1:5: note: declared here int foo (int p) ^ small.c:4:8: internal compiler error: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in create_tmp_from_val, at gimplify.c:491 a ^= foo (,); ^ 0xce76c7 tree_class_check_failed(tree_node const*, tree_code_class, char const*, int, char const*) ../../gcc-trunk/gcc/tree.c:9341 0x89cb90 tree_class_check(tree_node*, tree_code_class, char const*, int, char const*) ../../gcc-trunk/gcc/tree.h:2969 0x89cb90 create_tmp_from_val ../../gcc-trunk/gcc/gimplify.c:491 0x89cb90 lookup_tmp_var ../../gcc-trunk/gcc/gimplify.c:527 0x89cb90 internal_get_tmp_var ../../gcc-trunk/gcc/gimplify.c:557 0x896299 get_initialized_tmp_var(tree_node*, gimple_statement_base**, gimple_statement_base**) ../../gcc-trunk/gcc/gimplify.c:594 0x896299 gimplify_save_expr ../../gcc-trunk/gcc/gimplify.c:4882 0x896299 gimplify_expr(tree_node**, gimple_statement_base**, gimple_statement_base**, bool (*)(tree_node*), int) ../../gcc-trunk/gcc/gimplify.c:8183 0x89a1f6 gimplify_stmt(tree_node**, gimple_statement_base**) ../../gcc-trunk/gcc/gimplify.c:5514 0x89a9f1 gimplify_compound_expr ../../gcc-trunk/gcc/gimplify.c:4837 0x897063 gimplify_expr(tree_node**, gimple_statement_base**, gimple_statement_base**, bool (*)(tree_node*), int) ../../gcc-trunk/gcc/gimplify.c:7886 0x89a1f6 gimplify_stmt(tree_node**, gimple_statement_base**) ../../gcc-trunk/gcc/gimplify.c:5514 0x89738b gimplify_statement_list ../../gcc-trunk/gcc/gimplify.c:1483 0x89738b gimplify_expr(tree_node**, gimple_statement_base**, gimple_statement_base**, bool (*)(tree_node*), int) ../../gcc-trunk/gcc/gimplify.c:8312 0x89a1f6 gimplify_stmt(tree_node**, gimple_statement_base**) ../../gcc-trunk/gcc/gimplify.c:5514 0x89afc5 gimplify_bind_expr ../../gcc-trunk/gcc/gimplify.c:1132 0x8957ac gimplify_expr(tree_node**, gimple_statement_base**, gimple_statement_base**, bool (*)(tree_node*), int) ../../gcc-trunk/gcc/gimplify.c:8094 0x89a1f6 gimplify_stmt(tree_node**, gimple_statement_base**) ../../gcc-trunk/gcc/gimplify.c:5514 0x89ba7b gimplify_body(tree_node*, bool) ../../gcc-trunk/gcc/gimplify.c:9048 0x89c066 gimplify_function_tree(tree_node*) ../../gcc-trunk/gcc/gimplify.c:9202 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. $ int foo (int p) { int a; a ^= foo (,); return a; }
[Bug ipa/64776] FAIL: gcc.dg/ipa/pr64307.c (internal compiler error) on x86_64-apple-darwin14
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64776 --- Comment #1 from howarth at bromo dot med.uc.edu --- Backtraces as... % lldb /sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/gcc/cc1 (lldb) target create /sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/gcc/cc1 Current executable set to '/sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/gcc/cc1' (x86_64). (lldb) r -fpreprocessed pr64307.i -fPIC -quiet -dumpbase pr64307.c -mmacosx-version-min=10.10.1 -m64 -mtune=core2 -auxbase-strip pr64307.s -O0 -version -fno-diagnostics-show-caret -fdiagnostics-color=never -fipa-icf -fdump-ipa-icf -o pr64307.s Process 86458 launched: '/sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/gcc/cc1' (x86_64) GNU C11 (GCC) version 5.0.0 20150124 (experimental) (x86_64-apple-darwin14.1.0) compiled by GNU C version 5.0.0 20150124 (experimental), GMP version 6.0.0, MPFR version 3.1.2, MPC version 1.0.2 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 GNU C11 (GCC) version 5.0.0 20150124 (experimental) (x86_64-apple-darwin14.1.0) compiled by GNU C version 5.0.0 20150124 (experimental), GMP version 6.0.0, MPFR version 3.1.2, MPC version 1.0.2 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: f59cc75aa297c9855565e65a45cb4437 /sw/src/fink.build/gcc50-5.0.0-1000/gcc-5-20150124/gcc/testsuite/gcc.dg/ipa/pr64307.c: In function ‘real_part’: /sw/src/fink.build/gcc50-5.0.0-1000/gcc-5-20150124/gcc/testsuite/gcc.dg/ipa/pr64307.c:28:1: error: invalid argument to gimple call a # .MEM_2 = VDEF .MEM_1(D) retval.0_3 = real_part_2 (a); [tail call] /sw/src/fink.build/gcc50-5.0.0-1000/gcc-5-20150124/gcc/testsuite/gcc.dg/ipa/pr64307.c:28:1: internal compiler error: verify_gimple failed Process 86458 stopped * thread #1: tid = 0x37ebcf, 0x7fff92ac5286 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x7fff92ac5286 libsystem_kernel.dylib`__pthread_kill + 10 libsystem_kernel.dylib`__pthread_kill + 10: - 0x7fff92ac5286: jae0x7fff92ac5290; __pthread_kill + 20 0x7fff92ac5288: movq %rax, %rdi 0x7fff92ac528b: jmp0x7fff92ac0c53; cerror_nocancel 0x7fff92ac5290: retq (lldb) bt * thread #1: tid = 0x37ebcf, 0x7fff92ac5286 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT * frame #0: 0x7fff92ac5286 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x7fff8f61842f libsystem_pthread.dylib`pthread_kill + 90 frame #2: 0x7fff995feb53 libsystem_c.dylib`abort + 129 frame #3: 0x000100e24686 cc1`uw_init_context_1(context=0x7fff5fbfeb80, outer_cfa=0x7fff5fbfee30, outer_ra=0x000100d88d75) + 134 at unwind-dw2.c:1563 frame #4: 0x000100e25258 cc1`_Unwind_Backtrace(trace=0x000100d88cd0, trace_argument=0x7fff5fbfee30) + 56 at unwind.inc:283 frame #5: 0x000100d88d75 cc1`backtrace_full(state=unavailable, skip=unavailable, callback=unavailable, error_callback=unavailable, data=unavailable) + 53 at backtrace.c:106 frame #6: 0x000100d54703 cc1`diagnostic_action_after_output(context=0x000141577300, diag_kind=unavailable) + 435 at diagnostic.c:529 frame #7: 0x000100d54943 cc1`diagnostic_report_diagnostic(context=0x000141577300, diagnostic=0x7fff5fbfef00) + 483 at diagnostic.c:869 frame #8: 0x000100d55e9b cc1`internal_error(gmsgid=unavailable) + 235 at diagnostic.c:1240 frame #9: 0x0001009f881f cc1`verify_gimple_in_cfg(fn=0x000143139e70, verify_nothrow=false) + 3167 at tree-cfg.c:5069 frame #10: 0x0001008ccd3a cc1`execute_function_todo(fn=0x000143139e70, data=unavailable) + 586 at passes.c:1955 frame #11: 0x0001008cd4d2 cc1`do_per_function(callback=0x0001008ccaf0, data=0x0040) + 226 at passes.c:1654 frame #12: 0x0001008cd62e cc1`execute_todo(flags=64) + 302 at passes.c:2012 frame #13: 0x0001008d00b1 cc1`execute_one_pass(pass=0x0001422133b0) + 481 at passes.c:2339 frame #14: 0x0001008d0c5a cc1`execute_ipa_pass_list(pass=0x0001422133b0) + 154 at passes.c:2723 frame #15: 0x0001004cb0c7 cc1`symbol_table::compile() + 301 at cgraphunit.c:2133 frame #16: 0x0001004caf9a cc1`symbol_table::compile(this=0x000143005000) + 1226 frame #17: 0x0001004cd568 cc1`symbol_table::finalize_compilation_unit(this=0x000143005000) + 168 at timevar.h:110 frame #18: 0x00010001baf9 cc1`c_write_global_declarations() + 361 at c-decl.c:10789 frame #19: 0x0001009af63f cc1`compile_file + 143 at toplev.c:608 frame #20: 0x000100e931e7 cc1`toplev::main(int, char**) + 1288 at toplev.c:2050 frame #21: 0x000100e92cdf cc1`toplev::main(this=unavailable, argc=20, argv=0x7fff5fbff478) + 719 frame #22: 0x000100e93eac cc1`main(argc=unavailable, argv=unavailable) + 44 at main.c:39
[Bug fortran/49213] [OOP] gfortran rejects structure constructor expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49213 --- Comment #23 from Dominique d'Humieres dominiq at lps dot ens.fr --- The ICE on comment 9 does not occur any more with current trunk: gcc-Version 5.0.0 20150124 (experimental) [trunk revision 220084] (GCC) Confirmed. I get the ICE with r219763 (2015-01-16), but not with r219772 (2015-01-16, with Andre's patch for pr60357: https://gcc.gnu.org/ml/fortran/2015-01/msg00094.html). Since there is no fortran commit in the range, it is likely fixed by the Andre's patch.
[Bug target/64368] [5 Regression] Several libstdc++ test failures on non-linux platforms after r218964.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64368 --- Comment #17 from howarth at bromo dot med.uc.edu --- For the failure of the 22_locale/locale/cons/6.cc execution test on darwin14, it traces as... % fsf-gdb ./11.exe GNU gdb (GDB) 7.8.2 Copyright (C) 2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show copying and show warranty for details. This GDB was configured as x86_64-apple-darwin14.1.0. Type show configuration for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/. For help, type help. Type apropos word to search for commands related to word... Reading symbols from ./11.exe...Reading symbols from /sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/x86_64-apple-darwin14.1.0/libstdc++-v3/testsuite/11.exe.dSYM/Contents/Resources/DWARF/11.exe...done. done. (gdb) break main Breakpoint 1 at 0x3860: file /sw/src/fink.build/gcc50-5.0.0-1000/gcc-5-20150124/libstdc++-v3/testsuite/22_locale/num_get/get/char/11.cc, line 104. (gdb) r Starting program: /sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/x86_64-apple-darwin14.1.0/libstdc++-v3/testsuite/11.exe warning: Could not open OSO archive file /BinaryCache/corecrypto/corecrypto-233.1.2~26/Symbols/BuiltProducts/libcorecrypto_static.a warning: `/BinaryCache/coreTLS/coreTLS-35.1.2~2/Objects/coretls.build/coretls.build/Objects-normal/i386/system_coretls_vers.o': can't open to read symbols: No such file or directory. warning: Could not open OSO archive file /BinaryCache/coreTLS/coreTLS-35.1.2~2/Symbols/BuiltProducts/libcoretls_ciphersuites.a warning: Could not open OSO archive file /BinaryCache/coreTLS/coreTLS-35.1.2~2/Symbols/BuiltProducts/libcoretls_handshake.a warning: Could not open OSO archive file /BinaryCache/coreTLS/coreTLS-35.1.2~2/Symbols/BuiltProducts/libcoretls_record.a warning: Could not open OSO archive file /BinaryCache/coreTLS/coreTLS-35.1.2~2/Symbols/BuiltProducts/libcoretls_stream_parser.a Breakpoint 1, main () at /sw/src/fink.build/gcc50-5.0.0-1000/gcc-5-20150124/libstdc++-v3/testsuite/22_locale/num_get/get/char/11.cc:104 104{ (gdb) s 105 test01(); (gdb) s test01 () at /sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/x86_64-apple-darwin14.1.0/i386/libstdc++-v3/include/bits/basic_ios.h:462 462_M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) (gdb) s 40{ (gdb) s 462_M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) (gdb) s 40{ (gdb) s 462_M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) (gdb) s warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.) warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.) warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.) warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.) warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.) warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.) 0x94e20420 in dyld_stub_binder () from /usr/lib/system/libdyld.dylib (gdb) s Single stepping until exit from function dyld_stub_binder, which has no line number information. warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.) warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.) 0x94e20440 in misaligned_stack_error_ () from /usr/lib/system/libdyld.dylib (gdb) s Single stepping until exit from function misaligned_stack_error_, which has no line number information. warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.) warning: (Internal error: pc 0x0 in read in psymtab, but not in symtab.) 0x94e20458 in dyld_stub_binder_ () from /usr/lib/system/libdyld.dylib (gdb) s Single stepping until exit from function dyld_stub_binder_, which has no line number information. std::ios_base::ios_base (this=0xb49c) at ../../../../../../gcc-5-20150124/libstdc++-v3/src/c++11/ios.cc:76 76 ios_base::ios_base() throw() (gdb) s 11.exe(40298,0xa07ed1d4) malloc: *** error for object 0xc5a1e: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug Program received signal SIGABRT, Aborted. 0x94e3c69a in __pthread_kill () from /usr/lib/system/libsystem_kernel.dylib
[Bug libfortran/64770] [5 Regression] Segmentation fault when opening a file with status=new and the file exists.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64770 --- Comment #2 from Janne Blomqvist jb at gcc dot gnu.org --- Author: jb Date: Sat Jan 24 21:52:34 2015 New Revision: 220086 URL: https://gcc.gnu.org/viewcvs?rev=220086root=gccview=rev Log: PR libfortran/64770 Segfault when trying to open existing file with status=new. libgfortran ChangeLog: 2015-01-24 Janne Blomqvist j...@gcc.gnu.org PR libfortran/64770 * io/unit.c (filename_from_unit): Check that u-filename != NULL before calling strdup. testsuite ChangeLog: 2015-01-24 Janne Blomqvist j...@gcc.gnu.org PR libfortran/64770 * gfortran.dg/open_new_segv.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/open_new_segv.f90 Modified: trunk/gcc/testsuite/ChangeLog trunk/libgfortran/ChangeLog trunk/libgfortran/io/unit.c
[Bug rtl-optimization/64311] ICE: Max. number of generated reload insns per insn is achieved (90) with -fpic -march=corei7 for gcc.target/i386/avx512bw-vpbroadcast[bw]-1.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64311 --- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr --- Still present at r220081.
[Bug fortran/49213] [OOP] gfortran rejects structure constructor expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49213 --- Comment #22 from janus at gcc dot gnu.org --- The ICE on comment 9 does not occur any more with current trunk: gcc-Version 5.0.0 20150124 (experimental) [trunk revision 220084] (GCC)
[Bug fortran/56867] Missing temporary with string array assignment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56867 --- Comment #10 from Thomas Koenig tkoenig at gcc dot gnu.org --- Author: tkoenig Date: Sat Jan 24 21:30:15 2015 New Revision: 220085 URL: https://gcc.gnu.org/viewcvs?rev=220085root=gccview=rev Log: 2015-01-24 Thomas Koenig tkoe...@gcc.gnu.org PR fortran/56867 * trans-array.c (gfc_conv_resolve_dependencies): Also check dependencies when there may be substrings of character arrays. 2015-01-24 Thomas Koenig tkoe...@gcc.gnu.org PR fortran/56867 * gfortran.dg/dependency_45.f90: New test. Added: branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/dependency_45.f90 Modified: branches/gcc-4_8-branch/gcc/fortran/ChangeLog branches/gcc-4_8-branch/gcc/fortran/trans-array.c branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
[Bug libfortran/64770] [5 Regression] Segmentation fault when opening a file with status=new and the file exists.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64770 Janne Blomqvist jb at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2015-01-24 Assignee|unassigned at gcc dot gnu.org |jb at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Janne Blomqvist jb at gcc dot gnu.org --- Confirmed. Running the testcase under gdb gives the following backtrace: #0 0x00446a5a in strlen () #1 0x0044699e in strdup () #2 0x00404eac in _gfortrani_filename_from_unit (n=optimized out) at ../../../trunk-git/libgfortran/io/unit.c:833 #3 0x0040266f in _gfortrani_show_locus (cmp=0x7fffd2d0) at ../../../trunk-git/libgfortran/runtime/error.c:266 #4 0x00402c10 in _gfortrani_generate_error (cmp=cmp@entry=0x7fffd2d0, family=family@entry=5000, message=message@entry=0x6f7b60 'File \'test.dat\' already exists\000') at ../../../trunk-git/libgfortran/runtime/error.c:561 #5 0x00403d43 in _gfortrani_new_unit (opp=opp@entry=0x7fffd2d0, u=u@entry=0x6f7ca0, flags=flags@entry=0x7fffd270) at ../../../trunk-git/libgfortran/io/open.c:533 #6 0x00403fde in already_open (flags=optimized out, u=optimized out, opp=optimized out) at ../../../trunk-git/libgfortran/io/open.c:694 #7 _gfortran_st_open (opp=0x7fffd2d0) at ../../../trunk-git/libgfortran/io/open.c:859 #8 0x00401175 in pr64770 () at pr64770-open_new_segv.f90:4 #9 0x004011e4 in main (argc=1, argv=0x7fffd929) at pr64770-open_new_segv.f90:7 #10 0x0042562c in __libc_start_main () #11 0x00400fe7 in _start () unit.c:833 is /* Get the filename. */ if (u != NULL) return strdup (u-filename); // - Line 833 else return (char *) NULL; I suspect changing the test to if (u != NULL u-filename != NULL) should fix it.
[Bug fortran/32834] [Meta-bug] 'Fortran 95'-only failures
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32834 Bug 32834 depends on bug 56867, which changed state. Bug 56867 Summary: Missing temporary with string array assignment https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56867 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED
[Bug fortran/56867] Missing temporary with string array assignment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56867 Thomas Koenig tkoenig at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #11 from Thomas Koenig tkoenig at gcc dot gnu.org --- Fixed on all affected branches.
[Bug target/64782] -mcpu=native should be supported on aarch64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64782 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added Depends on||64784 --- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org --- -mcpu=native should select the native arch also.
[Bug target/64784] New: -march=native should be supported
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64784 Bug ID: 64784 Summary: -march=native should be supported Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target: aarch64 Like -mcpu=native, we should support -march=native too. This selects the native arch (armv8 or armv8.1) plus turns on the extensions which are supported like ASE, CRC, etc.
[Bug jit/64780] New: toplevel configure should reject jit as a language if --enable-host-shared is not supplied
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64780 Bug ID: 64780 Summary: toplevel configure should reject jit as a language if --enable-host-shared is not supplied Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: build Severity: normal Priority: P3 Component: jit Assignee: dmalcolm at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org When I was going to test the JIT front-end but since I did not read the documentation, I did not know I need to configure with --enable-host-shared. I think it would be a good idea to either default to --enable-host-shared when jit is a language or have the toplevel configure reject jit as language if --enable-host-shared is not supplied.
[Bug target/64783] New: -march=armv8.1-a should be supported
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64783 Bug ID: 64783 Summary: -march=armv8.1-a should be supported Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Since 8.1 was announced [1] support for -march=armv8.1-a should be done [1] http://community.arm.com/groups/processors/blog/2014/12/02/the-armv8-a-architecture-and-its-ongoing-development
[Bug libstdc++/64781] New: regex out-of-range submatches should represent an unmatched sub-expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64781 Bug ID: 64781 Summary: regex out-of-range submatches should represent an unmatched sub-expression Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: kaballo86 at hotmail dot com The following snippet fails with a runtime assertion: #include regex #include cassert int main() { std::match_resultsconst char* m; const char s[] = a; assert(std::regex_search(s, m, std::regex(a))); assert(m.size() == 1); assert(m[0].first == s+0); assert(m[0].second == s+1); assert(m[0].matched == true); assert(m[42].first == s+1); // fires assert(m[42].second == s+1); // fires assert(m[42].matched == false); } 28.10.4 [re.results.acc]/8 says If `n = size()` then returns a `sub_match` object representing an unmatched sub-expression. While the term unmatched sub-expression does not appear anywhere else in the standard, this is presumably 28.10 [re.results]/4 If the sub-expression `n` participated in a regular expression match then the `sub_match` member `matched` evaluates to `true`, and members `first` and `second` denote the range of characters `[first,second)` which formed that match. Otherwise `matched` is `false`, and members `first` and `second` point to the end of the sequence that was searched. According to that, `m[n].first == m[n].last == s+1` should hold for `n = 1`.
[Bug target/64782] New: -mcpu=native should be supported on aarch64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64782 Bug ID: 64782 Summary: -mcpu=native should be supported on aarch64 Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Now we have some different CPU supported on AARCH64. We should support -mcpu=native. We might need some information from the kernel which is not supplied yet.
[Bug fortran/64773] [F2008] Not packing arrays with changing variable used for size in block
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64773 Dominique d'Humieres dominiq at lps dot ens.fr changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-01-24 Ever confirmed|0 |1 --- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr --- Confirmed.
[Bug c/64778] [4.9/5 Regression] ICE on invalid code on x86_64-linux-gnu: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in create_tmp_from_val, at gimplify.c:491
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64778 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-01-24 CC||mpolacek at gcc dot gnu.org Target Milestone|--- |4.9.3 Summary|ICE on invalid code on |[4.9/5 Regression] ICE on |x86_64-linux-gnu: tree |invalid code on |check: expected class |x86_64-linux-gnu: tree |‘type’, have ‘exceptional’ |check: expected class |(error_mark) in |‘type’, have ‘exceptional’ |create_tmp_from_val, at |(error_mark) in |gimplify.c:491 |create_tmp_from_val, at ||gimplify.c:491 Ever confirmed|0 |1 --- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org --- Confirmed.
[Bug libitm/52482] libitm INVALID MNEMONIC in .S (powerpc asm)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52482 --- Comment #10 from venture37 at gmail dot com --- G4 with a 32bit ppc7450 CPU, running OS X Tiger 10.4.11 with Xcode 2.5 (GCC 4.0.1) Cloned git repo configured source Configured it with the following flags (taken from config.log) ./configure --enable-languages=c --enable-shared --enable-long-long --with-local-prefix=/Users/myusr/SandBox/gcc-trunk --enable-libssp --enable-threads=posix STRIP_FOR_TARGET=/usr/bin/strip --with-dwarf2 --disable-libitm --disable-nls --with-gmp=/Users/myusr/pkg --with-mpc=/Users/myusr/pkg --with-mpfr=/Users/myusr/pkg --with-os-directory=darwin --with-arch-directory=powerpc --with-system-zlib --enable-__cxa_atexit --with-gxx-include-dir=/Users/myusr/pkg/gcc49/include/c++/ --prefix=/Users/myusr/SandBox/gcc-trunk --build=powerpc-apple-darwin8 --host=powerpc-apple-darwin8 --infodir=/Users/myusr/SandBox/gcc-trunk/info --mandir=/Users/myusr/SandBox/gcc-trunk/man System had dependencies installed for GCC 4.9 installed via pkgsrc. Ran make Build fails at echo timestamp s-genrtl-h /Users/myusr/Sandbox/gcc/host-powerpc-apple-darwin8/prev-gcc/xg++ -B/Users/myusr/Sandbox/gcc/host-powerpc-apple-darwin8/prev-gcc/ -B/Users/myusr/SandBox/gcc-trunk/powerpc-apple-darwin8/bin/ -nostdinc++ -B/Users/myusr/Sandbox/gcc/prev-powerpc-apple-darwin8/libstdc++-v3/src/.libs -B/Users/myusr/Sandbox/gcc/prev-powerpc-apple-darwin8/libstdc++-v3/libsupc++/.libs -I/Users/myusr/Sandbox/gcc/prev-powerpc-apple-darwin8/libstdc++-v3/include/powerpc-apple-darwin8 -I/Users/myusr/Sandbox/gcc/prev-powerpc-apple-darwin8/libstdc++-v3/include -I/Users/myusr/Sandbox/gcc/libstdc++-v3/libsupc++ -L/Users/myusr/Sandbox/gcc/prev-powerpc-apple-darwin8/libstdc++-v3/src/.libs -L/Users/myusr/Sandbox/gcc/prev-powerpc-apple-darwin8/libstdc++-v3/libsupc++/.libs -c -g -O2 -mdynamic-no-pic -gtoggle -DIN_GCC-fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -Ibuild -I../.././gcc -I../.././gcc/build -I../.././gcc/../include -I../.././gcc/../libcpp/include \ -o build/rtl.o ../.././gcc/rtl.c ../.././gcc/rtl.c: In function 'void cwi_output_hex(FILE*, const_rtx)': ../.././gcc/rtl.c:240:62: error: ISO C++98 does not support the 'q' gnu_printf length modifier [-Werror=format=] fprintf (outfile, HOST_WIDE_INT_PRINT_HEX, CWI_ELT (x, --i)); ^ ../.././gcc/rtl.c:242:69: error: ISO C++98 does not support the 'q' gnu_printf length modifier [-Werror=format=] fprintf (outfile, HOST_WIDE_INT_PRINT_PADDED_HEX, CWI_ELT (x, i)); ^ cc1plus: all warnings being treated as errors make[3]: *** [build/rtl.o] Error 1 Also noticed that the compiler flags default to -m64 which won't work on a 32bit PowerPC host.
[Bug libfortran/64770] [5 Regression] Segmentation fault when opening a file with status=new and the file exists.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64770 --- Comment #4 from Dominique d'Humieres dominiq at lps dot ens.fr --- Fixed on trunk, closing. Thanks!
[Bug fortran/64771] [4.9/5 Regression] ICE(segfault) when passing coarrays around; ICE in gfc_zero_size_array in arith.c:1637
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64771 --- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org --- Created attachment 34567 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34567action=edit Draft patch
[Bug c++/64767] Could GCC warn when a pointer is compared against '\0'?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64767 --- Comment #2 from Ulf Magnusson ulfalizer at gmail dot com --- Looks like -Wnon-literal-null-conversion is intended to warn for the comparison case too, though it doesn't seem to be implemented yet as of clang 3.4: http://llvm.org/klaus/clang/commit/50800fc551ac6b8a95cca662223e7f061bbd169a/
[Bug fortran/57023] [4.8 Regression] Not packing arrays with changing variable used for size
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57023 --- Comment #9 from Thomas Koenig tkoenig at gcc dot gnu.org --- Author: tkoenig Date: Sat Jan 24 15:20:56 2015 New Revision: 220082 URL: https://gcc.gnu.org/viewcvs?rev=220082root=gccview=rev Log: 2015-01-24 Thomas Koenig tkoe...@netcologne.de Backport from trunk PR fortran/57023 * dependency.c (callback_dummy_intent_not_int): New function. (dummy_intent_not_in): New function. (gfc_full_array_ref_p): Use dummy_intent_not_in. 2015-01-24 Thomas Koenig tkoe...@netcologne.de Backport from trunk PR fortran/57023 * gfortran.dg/internal_pack_15.f90: New test. Modified: branches/gcc-4_8-branch/gcc/fortran/ChangeLog branches/gcc-4_8-branch/gcc/fortran/dependency.c branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
[Bug fortran/57023] [4.8 Regression] Not packing arrays with changing variable used for size
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57023 Thomas Koenig tkoenig at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #10 from Thomas Koenig tkoenig at gcc dot gnu.org --- Fixed on all open branches, closing.
[Bug fortran/32834] [Meta-bug] 'Fortran 95'-only failures
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32834 Bug 32834 depends on bug 57023, which changed state. Bug 57023 Summary: [4.8 Regression] Not packing arrays with changing variable used for size https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57023 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED
[Bug fortran/64773] New: [F2008]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64773 Bug ID: 64773 Summary: [F2008] Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: tkoenig at gcc dot gnu.org This is inspired by PR 57023, but it is a pure F2008 error, hence a separate PR. program main integer :: n n = 5 block integer, dimension(n, n) :: a a = 0 n = n - 1 call baz(a, n) print '(5I2)',a end block contains subroutine baz(a, i) integer, intent(in) :: i integer, dimension(i,i), intent(inout) :: a a = 1 end subroutine baz end program main ig25@linux-fd1f:~/Krempel/Block gfortran block.f90 ig25@linux-fd1f:~/Krempel/Block ./a.out 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
[Bug c++/64767] Could GCC warn when a pointer is compared against '\0'?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64767 --- Comment #3 from Ulf Magnusson ulfalizer at gmail dot com --- clang also generates a warning for C programs with void *a = '\0' by the way, so it seems to be able to look at the form of the integral constant there.
[Bug fortran/64773] [F2008] Not packing arrays with changing variable used for size in block
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64773 Thomas Koenig tkoenig at gcc dot gnu.org changed: What|Removed |Added Keywords||wrong-code Summary|[F2008] |[F2008] Not packing arrays ||with changing variable used ||for size in block --- Comment #1 from Thomas Koenig tkoenig at gcc dot gnu.org --- Makes more sense with a descriptive subject :-)
[Bug target/64774] New: [ARM/thumb] missed optimization: pc relative ldr used when constant can be derived from register
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64774 Bug ID: 64774 Summary: [ARM/thumb] missed optimization: pc relative ldr used when constant can be derived from register Product: gcc Version: 4.9.3 Status: UNCONFIRMED Severity: minor Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: bruck.michael at googlemail dot com In the example the second write address of each function can either be generated using 'str' with an immediate offset or using an adds with an immediate addend. The compiler does this for test1-3. For test4-6 it emits a pc-relative ldr instruction and a 32bit constant. This increases size and likely impacts execution speed. cat test.c void test1() { *(unsigned *)4 = 0x666; *(unsigned *)(4 + 4) = 0x666; } void test2() { *(unsigned *)4 = 0x666; *(unsigned *)(4 + 128) = 0x666; } void test3() { *(unsigned *)0x444 = 0x666; *(unsigned *)(0x444 + 4) = 0x666; } void test4() { *(unsigned *)0x444 = 0x666; *(unsigned *)(0x444 + 128) = 0x666; } void test5() { *(unsigned *)0x = 0x666; *(unsigned *)(0x + 4) = 0x666; } void test6() { *(unsigned *)0x = 0x666; *(unsigned *)(0x + 128) = 0x666; } arm-none-eabi-gcc -c test.c -mthumb -mcpu=cortex-m0 -mtune=cortex-m0 -Ofast -o test.o test1: 0:2204 movsr2, #4 2:4b02 ldrr3, [pc, #8]; (c test1+0xc) 4:6013 strr3, [r2, #0] 6:6053 strr3, [r2, #4] 8:4770 bxlr a:46c0 nop; (mov r8, r8) c:0666 .word0x0666 0010 test2: 10:2204 movsr2, #4 12:4b02 ldrr3, [pc, #8]; (1c test2+0xc) 14:6013 strr3, [r2, #0] 16:3280 addsr2, #128; 0x80 18:6013 strr3, [r2, #0] 1a:4770 bxlr 1c:0666 .word0x0666 0020 test3: 20:4b02 ldrr3, [pc, #8]; (2c test3+0xc) 22:4a03 ldrr2, [pc, #12]; (30 test3+0x10) 24:6013 strr3, [r2, #0] 26:6053 strr3, [r2, #4] 28:4770 bxlr 2a:46c0 nop; (mov r8, r8) 2c:0666 .word0x0666 30:0444 .word0x0444 0034 test4: 34:4b02 ldrr3, [pc, #8]; (40 test4+0xc) 36:4a03 ldrr2, [pc, #12]; (44 test4+0x10) 38:6013 strr3, [r2, #0] 3a:4a03 ldrr2, [pc, #12]; (48 test4+0x14) 3c:6013 strr3, [r2, #0] 3e:4770 bxlr 40:0666 .word0x0666 44:0444 .word0x0444 48:04c4 .word0x04c4 004c test5: 4c:4b02 ldrr3, [pc, #8]; (58 test5+0xc) 4e:4a03 ldrr2, [pc, #12]; (5c test5+0x10) 50:6013 strr3, [r2, #0] 52:4a03 ldrr2, [pc, #12]; (60 test5+0x14) 54:6013 strr3, [r2, #0] 56:4770 bxlr 58:0666 .word0x0666 5c: .word0x 60:4448 .word0x4448 0064 test6: 64:4b02 ldrr3, [pc, #8]; (70 test6+0xc) 66:4a03 ldrr2, [pc, #12]; (74 test6+0x10) 68:6013 strr3, [r2, #0] 6a:4a03 ldrr2, [pc, #12]; (78 test6+0x14) 6c:6013 strr3, [r2, #0] 6e:4770 bxlr 70:0666 .word0x0666 74: .word0x 78:44c4 .word0x44c4 Compiled using: https://launchpad.net/gcc-arm-embedded/4.9/4.9-2014-q4-major/+download/gcc-arm-none-eabi-4_9-2014q4-20141203-win32.exe
[Bug c++/64767] Could GCC warn when a pointer is compared against '\0'?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64767 --- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org --- Yes, although C says '\0' has type int the compiler can still distinguish the token '\0' from 0 during compilation.
[Bug c/64765] New: [OpenACC] Bogus 'copy' is not valid for '#pragma acc kernels loop'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64765 Bug ID: 64765 Summary: [OpenACC] Bogus 'copy' is not valid for '#pragma acc kernels loop' Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: openacc, rejects-valid Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org CC: tschwinge at gcc dot gnu.org The following program gives foo.c:2:36: error: 'copy' is not valid for '#pragma acc kernels loop' foo.c:2:26: error: 'create' is not valid for '#pragma acc kernels loop' #pragma acc kernels loop create(f) copy(r) ^ I believe copy and create are invalid for LOOP but they should be valid for KERNELS - and, hence, also for KERNEL LOOPS. (The equivalent Fortran program compiles.) Test case: void foo(float *f, double *r) { #pragma acc kernels loop create(f) copy(r) for(;;) {} }
[Bug middle-end/64764] New: internal compiler error: in is_value_included_in, at tree-ssa-uninit.c:942
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64764 Bug ID: 64764 Summary: internal compiler error: in is_value_included_in, at tree-ssa-uninit.c:942 Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: mpolacek at gcc dot gnu.org ./cc1 -quiet q.c -Wuninitialized -O q.c: In function ‘fn2’: q.c:14:1: internal compiler error: in is_value_included_in, at tree-ssa-uninit.c:942 fn2 () ^ 0xef6507 is_value_included_in /home/marek/src/gcc/gcc/tree-ssa-uninit.c:942 0xefcc71 is_pred_expr_subset_of /home/marek/src/gcc/gcc/tree-ssa-uninit.c:1387 0xefcc71 is_pred_chain_subset_of /home/marek/src/gcc/gcc/tree-ssa-uninit.c:1412 0xefcc71 is_included_in /home/marek/src/gcc/gcc/tree-ssa-uninit.c:1441 0xefcc71 is_superset_of /home/marek/src/gcc/gcc/tree-ssa-uninit.c:1472 0xefcc71 is_use_properly_guarded /home/marek/src/gcc/gcc/tree-ssa-uninit.c:2242 0xefd95f find_uninit_use /home/marek/src/gcc/gcc/tree-ssa-uninit.c:2285 0xefd95f warn_uninitialized_phi /home/marek/src/gcc/gcc/tree-ssa-uninit.c:2351 0xefd95f execute /home/marek/src/gcc/gcc/tree-ssa-uninit.c:2461 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. int a, l, m; float *b; float c, d, e, g, h; unsigned char i, k; void fn1 (int p1, float *f1, float *f2, float *f3, unsigned char *c1, float *f4, unsigned char *c2, float *p10) { if (p1 8) b[3] = p10[a]; } void fn2 () { float *n; if (l 6) n = c + m; fn1 (l, d, e, g, i, h, k, n); }
[Bug middle-end/64764] [5 Regression] internal compiler error: in is_value_included_in, at tree-ssa-uninit.c:942
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64764 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |5.0 Summary|internal compiler error: in |[5 Regression] internal |is_value_included_in, at|compiler error: in |tree-ssa-uninit.c:942 |is_value_included_in, at ||tree-ssa-uninit.c:942
[Bug middle-end/64764] [5 Regression] internal compiler error: in is_value_included_in, at tree-ssa-uninit.c:942
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64764 --- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org --- Started with r219739.
[Bug middle-end/64766] New: internal compiler error: tree check: expected block, have error_mark in lower_function_body, at gimple-low.c:122
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64766 Bug ID: 64766 Summary: internal compiler error: tree check: expected block, have error_mark in lower_function_body, at gimple-low.c:122 Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: mpolacek at gcc dot gnu.org ./cc1 -quiet ice1.c ice1.c:6:1: error: function ‘fn1’ is initialized like a variable void fn1 () = ^ ice1.c:6:1: error: expected expression at end of input ice1.c: In function ‘fn1’: ice1.c:2:1: internal compiler error: tree check: expected block, have error_mark in lower_function_body, at gimple-low.c:122 fn1 () ^ 0xface14 tree_check_failed(tree_node const*, char const*, int, char const*, ...) /home/marek/src/gcc/gcc/tree.c:9290 0x14f37fb tree_check /home/marek/src/gcc/gcc/tree.h:2846 0x14f37fb lower_function_body /home/marek/src/gcc/gcc/gimple-low.c:122 0x14f37fb execute /home/marek/src/gcc/gcc/gimple-low.c:205 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. void fn1 () { } void fn1 () =
[Bug c++/64767] New: Could GCC warn when a pointer is compared against '\0'?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64767 Bug ID: 64767 Summary: Could GCC warn when a pointer is compared against '\0'? Product: gcc Version: 4.8.2 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ulfalizer at gmail dot com This would detect e.g. ptr == '\0' when *ptr == '\0' was intended, which could be very dangerous (and just bit me). This might be tricky to implement in C since '\0' has type int and comparing a pointer against 0 is common. In C++ it has type char, so maybe a warning could be generated for ptr == (char)0 there. Thoughts?
[Bug c/64762] New: [OpenACC] Bogus expected '#pragma acc' clause before 'independent'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64762 Bug ID: 64762 Summary: [OpenACC] Bogus expected '#pragma acc' clause before 'independent' Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: openacc, rejects-valid Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org CC: tschwinge at gcc dot gnu.org The following program gives: foo1.c:4:18: error: expected '#pragma acc' clause before 'independent' #pragma acc loop independent ^ An equivalent Fortran program compiles successfully, it works with other compilers and looking at the standard, it also should be valid. void foo(void) { #pragma acc kernels { #pragma acc loop independent for (int i=1; i = 5; ++i) { } } }
[Bug fortran/60922] [4.9/5 Regression] Memory leak with allocatable CLASS components
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60922 --- Comment #13 from janus at gcc dot gnu.org --- Author: janus Date: Sat Jan 24 10:11:52 2015 New Revision: 220078 URL: https://gcc.gnu.org/viewcvs?rev=220078root=gccview=rev Log: 2015-01-24 Janus Weil ja...@gcc.gnu.org Backport from mainline PR fortran/60922 * class.c (finalize_component): Apply the check for 'fini_coarray' only to coarray components. 2015-01-24 Janus Weil ja...@gcc.gnu.org Backport from mainline PR fortran/60922 * gfortran.dg/class_allocate_17.f90: New. Added: branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/class_allocate_17.f90 Modified: branches/gcc-4_9-branch/gcc/fortran/ChangeLog branches/gcc-4_9-branch/gcc/fortran/class.c branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
[Bug c++/64759] The compiler does NOT show a warning in a case where it is reasonable to expect a warning message.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64759 --- Comment #3 from Andreas Schwab sch...@linux-m68k.org --- How often does that occur in real life?
[Bug fortran/64763] New: [OpenACC] !$acc region not implemented
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64763 Bug ID: 64763 Summary: [OpenACC] !$acc region not implemented Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: openacc, rejects-valid Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org CC: cesar at codesourcery dot com, tschwinge at gcc dot gnu.org The 2.13.1 Routine Directive is not implemented in the Fortran FE, it works in the C front end: !$acc region 1 Error: Unclassifiable OpenACC directive at (1) Testcase: !$acc region do end do !$acc end region end
[Bug fortran/60922] [4.9/5 Regression] Memory leak with allocatable CLASS components
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60922 janus at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #14 from janus at gcc dot gnu.org --- Fixed on trunk and 4.9. Closing. Thanks for the report!
[Bug c/64768] New: internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64768 Bug ID: 64768 Summary: internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274 Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: mpolacek at gcc dot gnu.org ./cc1 ice2.c ice2.c:2:12: error: array size missing in ‘a’ struct { A a; ^ ice2.c:2:8: internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274 struct { A a; ^ 0xfad59a tree_contains_struct_check_failed(tree_node const*, tree_node_structure_enum, char const*, int, char const*) /home/marek/src/gcc/gcc/tree.c:9462 0x672d2d contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) /home/marek/src/gcc/gcc/tree.h:2960 0x89dfd7 set_decl_rtl(tree_node*, rtx_def*) /home/marek/src/gcc/gcc/emit-rtl.c:1274 0xca6a3c relayout_decl(tree_node*) /home/marek/src/gcc/gcc/stor-layout.c:829 0x655c81 finish_decl(tree_node*, unsigned int, tree_node*, tree_node*, tree_node*) /home/marek/src/gcc/gcc/c/c-decl.c:4780 0x65d2f3 grokfield(unsigned int, c_declarator*, c_declspecs*, tree_node*, tree_node**) /home/marek/src/gcc/gcc/c/c-decl.c:7337 0x6b34d7 c_parser_struct_declaration /home/marek/src/gcc/gcc/c/c-parser.c:2986 0x6b2e22 c_parser_struct_or_union_specifier /home/marek/src/gcc/gcc/c/c-parser.c:2790 0x6b2070 c_parser_declspecs /home/marek/src/gcc/gcc/c/c-parser.c:2402 0x6b02f3 c_parser_declaration_or_fndef /home/marek/src/gcc/gcc/c/c-parser.c:1571 0x6b0109 c_parser_external_declaration /home/marek/src/gcc/gcc/c/c-parser.c:1452 0x6afd1c c_parser_translation_unit /home/marek/src/gcc/gcc/c/c-parser.c:1339 0x6d2ce1 c_parse_file() /home/marek/src/gcc/gcc/c/c-parser.c:15416 0x72b672 c_common_parse_file() /home/marek/src/gcc/gcc/c-family/c-opts.c:1052 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. typedef int A[]; struct { A a;
[Bug target/64688] [5 Regression] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64688 --- Comment #9 from Markus Trippelsdorf trippels at gcc dot gnu.org --- Created attachment 34563 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34563action=edit unreduced testcase
[Bug c/64768] [4.8/4.9/5 Regression] internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64768 --- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org --- typedef int A[]; struct { A a; } ICEs as well (right brace added).
[Bug tree-optimization/64769] New: ICE: tree check: expected integer_cst, have parm_decl in simd_clone_clauses_extract, at omp-low.c:12503 with -fopenmp-simd
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64769 Bug ID: 64769 Summary: ICE: tree check: expected integer_cst, have parm_decl in simd_clone_clauses_extract, at omp-low.c:12503 with -fopenmp-simd Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Created attachment 34564 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34564action=edit reduced testcase Crashes only when compiled as C++. Identical C code doesn't crash (or when '-x c' is passed). Compiler output: $ gcc -fopenmp-simd testcase.C testcase.C:5:1: internal compiler error: tree check: expected integer_cst, have parm_decl in simd_clone_clauses_extract, at omp-low.c:12503 } ^ 0x104e20c tree_check_failed(tree_node const*, char const*, int, char const*, ...) /mnt/svn/gcc-trunk/gcc/tree.c:9290 0x5b4284 tree_int_cst_elt_check(tree_node*, int, char const*, int, char const*) /mnt/svn/gcc-trunk/gcc/tree.h:3046 0xcdcd4e tree_int_cst_elt_check(tree_node*, int, char const*, int, char const*) /mnt/svn/gcc-trunk/gcc/tree.h:3049 0xcdcd4e simd_clone_clauses_extract /mnt/svn/gcc-trunk/gcc/omp-low.c:12503 0xcdcd4e expand_simd_clones /mnt/svn/gcc-trunk/gcc/omp-low.c:13488 0xcdcd4e ipa_omp_simd_clone /mnt/svn/gcc-trunk/gcc/omp-low.c:13579 0xcdcd4e execute /mnt/svn/gcc-trunk/gcc/omp-low.c:13607 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. Tested revisions: r219989 - ICE 4_9 r219040 - ICE 4_8 r219093 - unknown agrument -fopenmp-simd
[Bug libfortran/64770] New: [5 Regression] Segmentation fault when opening a file with status=new and the file exists.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64770 Bug ID: 64770 Summary: [5 Regression] Segmentation fault when opening a file with status=new and the file exists. Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libfortran Assignee: unassigned at gcc dot gnu.org Reporter: dominiq at lps dot ens.fr CC: jb at gcc dot gnu.org, jvdelisle at gcc dot gnu.org Executing the code implicit none open(99, file=test.dat, access=stream, form=unformatted, status=new) close(99) end should give At line 3 of file eof_4_red.f90 (unit = 99, file = '') Fortran runtime error: File 'test.dat' already exists if the file test.dat exists. This is the case for 4.9 and 5.0 up to revision r215301 (2014-09-16). However from r215328 (2014-09-17) up to r220065, running the test gives Program received signal SIGSEGV: Segmentation fault - invalid memory reference. Backtrace for this error: #0 0x10547d6c2 #1 0x10547c9e0 #2 0x7fff97f89f19 Segmentation fault The culprit is likely r215307. Note that I stumbled on this PR for gfortran.dg/eof_4.f90 while regtesting with -j8.
[Bug fortran/64757] internal compiler error: in fold_convert_loc, at fold-const.c:2353
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64757 Dominique d'Humieres dominiq at lps dot ens.fr changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr --- I get the same ICE with the change to ... type(TestReference), allocatable :: testList!(:) ... testList = TestReference(aTest) ... Thus I think it is a duplicate of pr49213. *** This bug has been marked as a duplicate of bug 49213 ***
[Bug c/64768] [4.8/4.9/5 Regression] internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64768 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org --- Started with my r182026.
[Bug fortran/64678] Expected association error on dependent associate statements
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64678 --- Comment #4 from Dominique d'Humieres dominiq at lps dot ens.fr --- Indeed, that's the easy workaround. I'd have thought the obvious definition for the single multi-associate statement would be to be a shortcut exactly equivalent to nested associates. In my mind it was not a workaround. From what I understand (little) of the Kargl's comment 1, the two forms should be either rejected or accepted.
[Bug fortran/64757] internal compiler error: in fold_convert_loc, at fold-const.c:2353
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64757 janus at gcc dot gnu.org changed: What|Removed |Added Keywords||ice-on-valid-code Status|RESOLVED|NEW Last reconfirmed||2015-01-24 CC||janus at gcc dot gnu.org Resolution|DUPLICATE |--- Ever confirmed|0 |1 --- Comment #2 from janus at gcc dot gnu.org --- (In reply to Dominique d'Humieres from comment #1 Thus I think it is a duplicate of pr49213. It it certainly related, but I'm not sure it is an exact duplicate. In particular the above PR has quite a history and includes several test cases. Let's keep it separate for now.
[Bug fortran/64757] [5 Regression] ICE in fold_convert_loc, at fold-const.c:2353
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64757 --- Comment #4 from Dominique d'Humieres dominiq at lps dot ens.fr --- It it certainly related, but I'm not sure it is an exact duplicate. In particular the above PR has quite a history and includes several test cases. Let's keep it separate for now. I disagree. AFACT this PR gives the same ICE as the test in pr49213 comment 8 or the following variant of the original code program main type :: S integer :: n end type type(S) :: Sobj type, extends(S) :: S2 integer :: m end type type(S2) :: S2obj type :: T class(S), allocatable :: x end type type(T) :: Tobj Sobj = S(1) Tobj = T(Sobj) S2obj = S2(1,2) print *, S2obj%n, S2obj%m end program Actually pr49213 is a collection of different bugs, one being this PR. IMO pr49213 should be split along the different bugs.
[Bug fortran/57023] [4.8/4.9 Regression] Not packing arrays with changing variable used for size
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57023 --- Comment #8 from Thomas Koenig tkoenig at gcc dot gnu.org --- Author: tkoenig Date: Sat Jan 24 12:50:51 2015 New Revision: 220080 URL: https://gcc.gnu.org/viewcvs?rev=220080root=gccview=rev Log: 2015-01-24 Thomas Koenig tkoe...@netcologne.de Backport from trunk PR fortran/57023 * dependency.c (callback_dummy_intent_not_int): New function. (dummy_intent_not_in): New function. (gfc_full_array_ref_p): Use dummy_intent_not_in. 2015-01-24 Thomas Koenig tkoe...@netcologne.de Backport from trunk PR fortran/57023 * gfortran.dg/internal_pack_15.f90: New test. Added: branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/internal_pack_15.f90 Modified: branches/gcc-4_9-branch/gcc/fortran/ChangeLog branches/gcc-4_9-branch/gcc/fortran/dependency.c branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
[Bug fortran/64692] Incorrect result for sourced allocate of class(*) array
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64692 Dominique d'Humieres dominiq at lps dot ens.fr changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-01-24 Ever confirmed|0 |1 --- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr --- Confirmed for 4.9 and 5.0 (r220065): array 1 3.4. array 2 4.6.9532175754940950E-310 I suspect an off-by-one problem. Note that with 4.8.4 I get array 1 3.4. array 2 1.2.
[Bug fortran/49213] [OOP] gfortran rejects structure constructor expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49213 Dominique d'Humieres dominiq at lps dot ens.fr changed: What|Removed |Added CC||mike at rilee dot net --- Comment #20 from Dominique d'Humieres dominiq at lps dot ens.fr --- *** Bug 64757 has been marked as a duplicate of this bug. ***
[Bug fortran/64692] Incorrect result for sourced allocate of class(*) array
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64692 --- Comment #2 from Antony Lewis antony at cosmologist dot info --- May be same/related to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60322 ?
[Bug fortran/64678] Expected association error on dependent associate statements
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64678 --- Comment #3 from Antony Lewis antony at cosmologist dot info --- Indeed, that's the easy workaround. I'd have thought the obvious definition for the single multi-associate statement would be to be a shortcut exactly equivalent to nested associates.
[Bug fortran/64757] [5 Regression] ICE in fold_convert_loc, at fold-const.c:2353
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64757 --- Comment #5 from janus at gcc dot gnu.org --- (In reply to Dominique d'Humieres from comment #4) Actually pr49213 is a collection of different bugs, one being this PR. Right. Exactly for this reason I want to keep it separate. Makes it much easier to keep track of the different problems separately.
[Bug c/64768] [4.8/4.9/5 Regression] internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64768 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org --- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org --- I guess mine.
[Bug c/64768] [4.8/4.9/5 Regression] internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64768 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-01-24 Ever confirmed|0 |1
[Bug c/64768] [4.8/4.9/5 Regression] internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64768 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.5 Summary|internal compiler error:|[4.8/4.9/5 Regression] |tree check: expected tree |internal compiler error: |that contains ‘decl with|tree check: expected tree |RTL’ structure, have|that contains ‘decl with |‘field_decl’ in |RTL’ structure, have |set_decl_rtl, at|‘field_decl’ in |emit-rtl.c:1274 |set_decl_rtl, at ||emit-rtl.c:1274 --- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org --- Seems to be a regression, gcc 4.5 says ice2.c:2:12: error: array size missing in ‘a’ ice2.c:2:8: error: expected specifier-qualifier-list at end of input and doesn't ICE.
[Bug target/64688] [5 Regression] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64688 Markus Trippelsdorf trippels at gcc dot gnu.org changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- --- Comment #8 from Markus Trippelsdorf trippels at gcc dot gnu.org --- (In reply to Jakub Jelinek from comment #7) Fixed then. Unfortunately not. The boost testsuite still shows the same issue on the same file. Reducing again.
[Bug target/64688] [5 Regression] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64688 --- Comment #10 from Uroš Bizjak ubizjak at gmail dot com --- (In reply to Markus Trippelsdorf from comment #8) Unfortunately not. The boost testsuite still shows the same issue on the same file. The fix depends on the ability of IRA to push the register to memory and reload it through memory constraint.
[Bug middle-end/64766] [4.8/4.9/5 Regression] internal compiler error: tree check: expected block, have error_mark in lower_function_body, at gimple-low.c:122
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64766 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-01-24 CC||jakub at gcc dot gnu.org Target Milestone|--- |4.8.5 Summary|internal compiler error:|[4.8/4.9/5 Regression] |tree check: expected block, |internal compiler error: |have error_mark in |tree check: expected block, |lower_function_body, at |have error_mark in |gimple-low.c:122|lower_function_body, at ||gimple-low.c:122 Ever confirmed|0 |1 --- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org --- Started with r149750.
[Bug target/64342] [5 Regression] Tests failing when compiled with '-m32 -fpic' after r216154.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64342 vries at gcc dot gnu.org changed: What|Removed |Added CC||vries at gcc dot gnu.org --- Comment #4 from vries at gcc dot gnu.org --- Submitted patch for funcspec-5.c: https://gcc.gnu.org/ml/gcc-patches/2015-01/msg02162.html
[Bug c/64768] [4.8/4.9/5 Regression] internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64768 --- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org --- And even better: typedef int A[]; struct { int i; A a; } a; Clang accepts the code, we say (released compiler): ice2.c:2:19: error: array size missing in ‘a’ struct { int i; A a; } a; ^ and ICE with checking enabled since 4.6.
[Bug target/64342] [5 Regression] Tests failing when compiled with '-m32 -fpic' after r216154.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64342 Dominique d'Humieres dominiq at lps dot ens.fr changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-01-24 Ever confirmed|0 |1 --- Comment #5 from Dominique d'Humieres dominiq at lps dot ens.fr --- I've just submitted a patch for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64317 The patch might fix this PR too. Could you check it. Thanks. Unfortunately not. Submitted patch for funcspec-5.c: https://gcc.gnu.org/ml/gcc-patches/2015-01/msg02162.html This patch has no chance to fix the failures for the fuse-caller-save* tests. The failures reported in comment 0 are still there at revision r220065 (I'll test the patch for funcspec-5.c later today).
[Bug fortran/64757] [5 Regression] ICE in fold_convert_loc, at fold-const.c:2353
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64757 janus at gcc dot gnu.org changed: What|Removed |Added Summary|internal compiler error: in |[5 Regression] ICE in |fold_convert_loc, at|fold_convert_loc, at |fold-const.c:2353 |fold-const.c:2353 --- Comment #3 from janus at gcc dot gnu.org --- Here is a reduction of the original test case which gives the ICE with trunk, but compiles cleanly with 4.9: type :: Test end type type :: TestReference class(Test), allocatable :: test end type type(TestReference) :: testList testList = TestReference(Test()) ! ICE in fold_convert_loc end The backtrace is: internal compiler error: in fold_convert_loc, bei fold-const.c:2357 0x814255 fold_convert_loc(unsigned int, tree_node*, tree_node*) /home/jweil/gcc/gcc50/trunk/gcc/fold-const.c:2357 0x6b16ea alloc_scalar_allocatable_for_subcomponent_assignment /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:6403 0x6b16ea gfc_trans_subcomponent_assign /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:6497 0x6b087b gfc_trans_structure_assign /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:6649 0x6b2104 gfc_conv_structure(gfc_se*, gfc_expr*, int) /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:6678 0x6ad46c gfc_conv_expr(gfc_se*, gfc_expr*) /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:6848 0x6b32ff gfc_trans_assignment_1 /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-expr.c:8553 0x682035 trans_code /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans.c:1650 0x6a2e53 gfc_generate_function_code(gfc_namespace*) /home/jweil/gcc/gcc50/trunk/gcc/fortran/trans-decl.c:5844 0x63e470 translate_all_program_units /home/jweil/gcc/gcc50/trunk/gcc/fortran/parse.c:5341 0x63e470 gfc_parse_file() /home/jweil/gcc/gcc50/trunk/gcc/fortran/parse.c:5538 0x67de95 gfc_be_parse_file /home/jweil/gcc/gcc50/trunk/gcc/fortran/f95-lang.c:228
[Bug target/64342] [5 Regression] Tests failing when compiled with '-m32 -fpic' after r216154.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64342 --- Comment #6 from vries at gcc dot gnu.org --- avx512f-kandnw-1.c fails with -fpic, because there's no kandnw instruction in the .s file. In postreload, it's still there: ... (insn 17 40 39 2 (parallel [ (set (reg:HI 0 ax [105]) (and:HI (not:HI (reg:HI 0 ax [105])) (reg:HI 2 cx [orig:103 k2 ] [103]))) (clobber (reg:CC 17 flags)) ]) build/gcc/include/avx512fintrin.h:9995 386 {kandnhi} (nil)) ... Immediately afterwards, in split2, it disappears: ... Splitting with gen_split_5282 scanning new insn with uid = 42. scanning new insn with uid = 43. deleting insn with uid = 17. ... This is due to this split in i386.md (introduced in r202491): ... (define_split [(set (match_operand:SWI12 0 general_reg_operand) (and:SWI12 (not:SWI12 (match_dup 0)) (match_operand:SWI12 1 general_reg_operand))) (clobber (reg:CC FLAGS_REG))] TARGET_AVX512F !TARGET_BMI reload_completed [(set (match_dup 0) (not:HI (match_dup 0))) (parallel [(set (match_dup 0) (and:HI (match_dup 0) (match_dup 1))) (clobber (reg:CC FLAGS_REG))])]) ...
[Bug target/52933] SH Target: Use div0s for integer sign comparisons
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52933 --- Comment #7 from Oleg Endo olegendo at gcc dot gnu.org --- Author: olegendo Date: Sat Jan 24 13:04:53 2015 New Revision: 220081 URL: https://gcc.gnu.org/viewcvs?rev=220081root=gccview=rev Log: gcc/ PR target/49263 PR target/53987 PR target/64345 PR target/59533 PR target/52933 PR target/54236 PR target/51244 * config/sh/sh-protos.h (sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn, sh_is_movrt_insn, sh_insn_operands_modified_between_p, sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr, sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions. (sh_treg_insns): New class. * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook. (scope_counter): New class. (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn, sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr, sh_in_recog_treg_set_expr, sh_try_split_insn_simple, sh_split_treg_set_expr): New functions. (addsubcosts): Handle treg_set_expr. (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT. (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND. (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases. (sh_insn_operands_modified_between_p): Make non-static. * config/sh/predicates.md (zero_extend_movu_operand): Allow simple_mem_operand in addition to displacement_mem_operand. (zero_extend_operand): Don't allow zero_extend_movu_operand. (treg_set_expr, treg_set_expr_not_const01, arith_reg_or_treg_set_expr): New predicates. * config/sh/sh.md (tstsi_t): Use arith_reg_operand and arith_or_int_operand instead of logical_operand. Convert to insn_and_split. Try to optimize constant operand in splitter. (tsthi_t, tstqi_t): Fold into *tstmode_t. Convert to insn_and_split. (*tstqi_t_zero): Delete. (*tstmode_t_subregs): Add !sh_in_recog_treg_set_expr split condition. (tstsi_t_and_not): Delete. (tstmode_t_zero_extract_eq): Rename to *tstmode_t_zero_extract. Convert to insn_and_split. (unnamed split, tstsi_t_zero_extract_xor, tstsi_t_zero_extract_subreg_xor_little, tstsi_t_zero_extract_subreg_xor_big): Delete. (*tstsi_t_shift_mask): New insn_and_split. (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try to recombine with surrounding insns when splitting. (*negtstsi): Add !sh_in_recog_treg_set_expr condition. (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ... (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4, *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns. (*cbranch_div0s: Delete. (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01. (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb, *addc_r_r_msb, *addc_2r_msb): Delete. (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand order variant. (*addc_negreg_t): New insn_and_split. (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New insn_and_split patterns. (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with surrounding insns when splitting. (unnamed rotcr split): Use arith_reg_or_treg_set_expr. (*rotcl): Likewise. Add zero_extract variant. (*ashrsi2_31): New insn_and_split. (*negc): Convert to insn_and_split. Use treg_set_expr. (*zero_extendmodesi2_disp_mem): Update comment. (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split condition. (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine with surrounding insns when splitting. (any_treg_expr_to_reg): New insn_and_split. (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2, *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5, *neg_zero_extract_6, *zero_extract_0, *zero_extract_1, *zero_extract_2): New single bit zero extract patterns. (bld_reg, *bld_regqi): Fold into bldmode_reg. (*get_thread_pointersi, store_gbr, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movdi_gbr_load): Use arith_reg_dest instead of register_operand for set destination. (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of register_operand for
[Bug target/51244] [SH] Inefficient conditional branch and code around T bit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #85 from Oleg Endo olegendo at gcc dot gnu.org --- Author: olegendo Date: Sat Jan 24 13:04:53 2015 New Revision: 220081 URL: https://gcc.gnu.org/viewcvs?rev=220081root=gccview=rev Log: gcc/ PR target/49263 PR target/53987 PR target/64345 PR target/59533 PR target/52933 PR target/54236 PR target/51244 * config/sh/sh-protos.h (sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn, sh_is_movrt_insn, sh_insn_operands_modified_between_p, sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr, sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions. (sh_treg_insns): New class. * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook. (scope_counter): New class. (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn, sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr, sh_in_recog_treg_set_expr, sh_try_split_insn_simple, sh_split_treg_set_expr): New functions. (addsubcosts): Handle treg_set_expr. (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT. (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND. (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases. (sh_insn_operands_modified_between_p): Make non-static. * config/sh/predicates.md (zero_extend_movu_operand): Allow simple_mem_operand in addition to displacement_mem_operand. (zero_extend_operand): Don't allow zero_extend_movu_operand. (treg_set_expr, treg_set_expr_not_const01, arith_reg_or_treg_set_expr): New predicates. * config/sh/sh.md (tstsi_t): Use arith_reg_operand and arith_or_int_operand instead of logical_operand. Convert to insn_and_split. Try to optimize constant operand in splitter. (tsthi_t, tstqi_t): Fold into *tstmode_t. Convert to insn_and_split. (*tstqi_t_zero): Delete. (*tstmode_t_subregs): Add !sh_in_recog_treg_set_expr split condition. (tstsi_t_and_not): Delete. (tstmode_t_zero_extract_eq): Rename to *tstmode_t_zero_extract. Convert to insn_and_split. (unnamed split, tstsi_t_zero_extract_xor, tstsi_t_zero_extract_subreg_xor_little, tstsi_t_zero_extract_subreg_xor_big): Delete. (*tstsi_t_shift_mask): New insn_and_split. (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try to recombine with surrounding insns when splitting. (*negtstsi): Add !sh_in_recog_treg_set_expr condition. (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ... (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4, *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns. (*cbranch_div0s: Delete. (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01. (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb, *addc_r_r_msb, *addc_2r_msb): Delete. (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand order variant. (*addc_negreg_t): New insn_and_split. (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New insn_and_split patterns. (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with surrounding insns when splitting. (unnamed rotcr split): Use arith_reg_or_treg_set_expr. (*rotcl): Likewise. Add zero_extract variant. (*ashrsi2_31): New insn_and_split. (*negc): Convert to insn_and_split. Use treg_set_expr. (*zero_extendmodesi2_disp_mem): Update comment. (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split condition. (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine with surrounding insns when splitting. (any_treg_expr_to_reg): New insn_and_split. (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2, *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5, *neg_zero_extract_6, *zero_extract_0, *zero_extract_1, *zero_extract_2): New single bit zero extract patterns. (bld_reg, *bld_regqi): Fold into bldmode_reg. (*get_thread_pointersi, store_gbr, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movdi_gbr_load): Use arith_reg_dest instead of register_operand for set destination. (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of register_operand for
[Bug fortran/64772] New: ICE passing coarrays to subroutine
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64772 Bug ID: 64772 Summary: ICE passing coarrays to subroutine Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: fanfarillo.gcc at gmail dot com Created attachment 34565 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34565action=edit Taken from the NAS3.3-CAF benchmark provided by the HPCTools group at UH. Dear all, the attached code generates the following ICE: $ gfortran -fcoarray=lib -c cg.f f951: internal compiler error: Segmentation fault 0xb6c6ff crash_signal ../../gcc/toplev.c:383 0x5ea56c gfc_zero_size_array ../../gcc/fortran/arith.c:1637 0x5ea56c reduce_binary0 ../../gcc/fortran/arith.c:1651 0x5eb460 eval_intrinsic_f3 ../../gcc/fortran/arith.c:1700 0x622e63 check_dummy_characteristics ../../gcc/fortran/interface.c:1212 0x622807 check_dummy_characteristics ../../gcc/fortran/interface.c:1058 0x622807 gfc_compare_interfaces(gfc_symbol*, gfc_symbol*, char const*, int, int, char*, int, char const*, char const*) ../../gcc/fortran/interface.c:1511 0x67d5ad resolve_global_procedure ../../gcc/fortran/resolve.c:2456 0x67d8b7 resolve_call ../../gcc/fortran/resolve.c:3394 0x67af88 gfc_resolve_code(gfc_code*, gfc_namespace*) ../../gcc/fortran/resolve.c:10190 0x67d182 resolve_codes ../../gcc/fortran/resolve.c:14974 0x67d262 gfc_resolve ../../gcc/fortran/resolve.c:15002 0x668f7a resolve_all_program_units ../../gcc/fortran/parse.c:5280 0x668f7a gfc_parse_file() ../../gcc/fortran/parse.c:5523 0x6a8ad5 gfc_be_parse_file ../../gcc/fortran/f95-lang.c:228 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. -- My current configuration: Using built-in specs. COLLECT_GCC=gfortran COLLECT_LTO_WRAPPER=/home/alex/Downloads/gcc/libexec/gcc/x86_64-unknown-linux-gnu/5.0.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../configure --prefix=/home/alex/gcc --enable-languages=c,c++,fortran --disable-multilib --disable-libgcj --disable-bootstrap Thread model: posix gcc version 5.0.0 20150124 (experimental) (GCC) Thanks
[Bug fortran/64772] [5 Regression] ICE passing coarrays to subroutine
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64772 Thomas Koenig tkoenig at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-01-24 CC||tkoenig at gcc dot gnu.org Target Milestone|--- |5.0 Summary|ICE passing coarrays to |[5 Regression] ICE passing |subroutine |coarrays to subroutine Ever confirmed|0 |1 --- Comment #1 from Thomas Koenig tkoenig at gcc dot gnu.org --- With -fcoarray=single, the test case fails with Program received signal SIGSEGV, Segmentation fault. eval_intrinsic_f3 (op=INTRINSIC_MINUS, eval=0x615a60 gfc_arith_minus(gfc_expr*, gfc_expr*, gfc_expr**), op1=0x0, op2=0x1d73140) at ../../trunk/gcc/fortran/arith.c:1700 1700 result = reduce_binary0 (op1, op2); (gdb) p op1 $1 = (gfc_expr *) 0x0 This does not happen with 4.8, hence marking as regression.
[Bug target/64688] [5 Regression] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64688 --- Comment #11 from Markus Trippelsdorf trippels at gcc dot gnu.org --- Created attachment 34566 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34566action=edit reduced testcase trippels@gcc20 % g++ -c -O3 -std=c++11 -march=westmere performance.ii performance.ii: In function ‘void performance_testtest_method()’: performance.ii:133:1: internal compiler error: Max. number of generated reload insns per insn is achieved (90) } ^ 0xb6e6e0 lra_constraints(bool) ../../gcc/gcc/lra-constraints.c:4335 0xb5b041 lra(_IO_FILE*) ../../gcc/gcc/lra.c:2292 0xb18da9 do_reload ../../gcc/gcc/ira.c:5418 0xb18da9 execute ../../gcc/gcc/ira.c:5589 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions.
[Bug fortran/64772] [4.9/5 Regression] ICE passing coarrays to subroutine
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64772 Thomas Koenig tkoenig at gcc dot gnu.org changed: What|Removed |Added Target Milestone|5.0 |4.9.4 Summary|[5 Regression] ICE passing |[4.9/5 Regression] ICE |coarrays to subroutine |passing coarrays to ||subroutine --- Comment #2 from Thomas Koenig tkoenig at gcc dot gnu.org --- Also a segfault in a very similar place with 4.9.
[Bug c++/64758] [C++11] Give better error message when name of enum's base type cannot be resolved
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64758 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-01-24 Ever confirmed|0 |1
[Bug c++/64759] The compiler does NOT show a warning in a case where it is reasonable to expect a warning message.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64759 --- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org --- (In reply to Lakshay Garg from comment #2) It makes sense to compare against 0 but not 0.0 Huh? Why not? This code seems perfectly reasonable to me: double divisor; std::cin divisor; if (!divisor) throw std::invalid_argument(Divide by zero attempted);
[Bug c++/64759] The compiler does NOT show a warning in a case where it is reasonable to expect a warning message.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64759 --- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org --- (well, apart from not checking if the input operation failed ;-)
[Bug fortran/64771] ICE(segfault) when passing coarrays around; ICE in gfc_zero_size_array in arith.c:1637
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64771 --- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr --- Dup of 64772.
[Bug c++/64755] Error in optimization with std::array
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64755 --- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org --- Comment on attachment 34556 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34556 They are 3 files bug.cpp (contain the code to compile), bug.O1 and bug.O2 (contain the assembly code generated by g++) witch return 0 in O1 or -1 in O2.. Code from the attachment to save having to unrar it: #include array template typename All, typename Left, typename Rigth struct basic_reg { union { All value; struct { Rigth lower; Left higher; } halfs; }; }; template typename Left struct basic_regLeft, Left, void { Left value; }; template typename Register, unsigned short Size struct basic_registers { typedef Register register_t; typedef std::arrayregister_t, Size registers_t; basic_registers() : m_registers{0} {} typename registers_t::reference operator[](typename registers_t::size_type i) { return m_registers[i]; } private: registers_t m_registers; }; typedef basic_reguint8_t, uint8_t, void bits_08_register; typedef basic_reguint16_t, bits_08_register, bits_08_register bits_16_register; typedef basic_reguint32_t, bits_16_register, bits_16_register bits_32_register; typedef basic_registersbits_32_register, 1 igpr_bits_32_registers; struct basic_registry_wrapper { typedef std::arrayuint16_t*, 1 gp_bit16_array; typedef std::arrayuint32_t*, 1 gp_bit32_array; basic_registry_wrapper(igpr_bits_32_registers registers) { m_gpr_bits16_array[0] = registers[0].halfs.lower.value; m_gpr_bits32_array[0] = registers[0].value; } uint16_t ax() { return *m_gpr_bits16_array[0]; } uint32_t eax() { return *m_gpr_bits32_array[0]; } private: gp_bit16_array m_gpr_bits16_array; gp_bit32_array m_gpr_bits32_array; }; int main() { igpr_bits_32_registers reg_32; basic_registry_wrapper reg_wrap_32(reg_32); if (reg_wrap_32.eax() != 0) return -1; reg_wrap_32.eax() = 0x12345678; if (reg_wrap_32.ax() != 0x5678) return -1; return 0; }
[Bug target/64345] [SH] Improve single bit extraction
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64345 --- Comment #1 from Oleg Endo olegendo at gcc dot gnu.org --- Author: olegendo Date: Sat Jan 24 13:04:53 2015 New Revision: 220081 URL: https://gcc.gnu.org/viewcvs?rev=220081root=gccview=rev Log: gcc/ PR target/49263 PR target/53987 PR target/64345 PR target/59533 PR target/52933 PR target/54236 PR target/51244 * config/sh/sh-protos.h (sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn, sh_is_movrt_insn, sh_insn_operands_modified_between_p, sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr, sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions. (sh_treg_insns): New class. * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook. (scope_counter): New class. (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn, sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr, sh_in_recog_treg_set_expr, sh_try_split_insn_simple, sh_split_treg_set_expr): New functions. (addsubcosts): Handle treg_set_expr. (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT. (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND. (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases. (sh_insn_operands_modified_between_p): Make non-static. * config/sh/predicates.md (zero_extend_movu_operand): Allow simple_mem_operand in addition to displacement_mem_operand. (zero_extend_operand): Don't allow zero_extend_movu_operand. (treg_set_expr, treg_set_expr_not_const01, arith_reg_or_treg_set_expr): New predicates. * config/sh/sh.md (tstsi_t): Use arith_reg_operand and arith_or_int_operand instead of logical_operand. Convert to insn_and_split. Try to optimize constant operand in splitter. (tsthi_t, tstqi_t): Fold into *tstmode_t. Convert to insn_and_split. (*tstqi_t_zero): Delete. (*tstmode_t_subregs): Add !sh_in_recog_treg_set_expr split condition. (tstsi_t_and_not): Delete. (tstmode_t_zero_extract_eq): Rename to *tstmode_t_zero_extract. Convert to insn_and_split. (unnamed split, tstsi_t_zero_extract_xor, tstsi_t_zero_extract_subreg_xor_little, tstsi_t_zero_extract_subreg_xor_big): Delete. (*tstsi_t_shift_mask): New insn_and_split. (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try to recombine with surrounding insns when splitting. (*negtstsi): Add !sh_in_recog_treg_set_expr condition. (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ... (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4, *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns. (*cbranch_div0s: Delete. (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01. (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb, *addc_r_r_msb, *addc_2r_msb): Delete. (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand order variant. (*addc_negreg_t): New insn_and_split. (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New insn_and_split patterns. (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with surrounding insns when splitting. (unnamed rotcr split): Use arith_reg_or_treg_set_expr. (*rotcl): Likewise. Add zero_extract variant. (*ashrsi2_31): New insn_and_split. (*negc): Convert to insn_and_split. Use treg_set_expr. (*zero_extendmodesi2_disp_mem): Update comment. (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split condition. (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine with surrounding insns when splitting. (any_treg_expr_to_reg): New insn_and_split. (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2, *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5, *neg_zero_extract_6, *zero_extract_0, *zero_extract_1, *zero_extract_2): New single bit zero extract patterns. (bld_reg, *bld_regqi): Fold into bldmode_reg. (*get_thread_pointersi, store_gbr, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movdi_gbr_load): Use arith_reg_dest instead of register_operand for set destination. (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of register_operand for
[Bug target/59533] [SH] Missed cmp/pz opportunity
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59533 --- Comment #4 from Oleg Endo olegendo at gcc dot gnu.org --- Author: olegendo Date: Sat Jan 24 13:04:53 2015 New Revision: 220081 URL: https://gcc.gnu.org/viewcvs?rev=220081root=gccview=rev Log: gcc/ PR target/49263 PR target/53987 PR target/64345 PR target/59533 PR target/52933 PR target/54236 PR target/51244 * config/sh/sh-protos.h (sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn, sh_is_movrt_insn, sh_insn_operands_modified_between_p, sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr, sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions. (sh_treg_insns): New class. * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook. (scope_counter): New class. (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn, sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr, sh_in_recog_treg_set_expr, sh_try_split_insn_simple, sh_split_treg_set_expr): New functions. (addsubcosts): Handle treg_set_expr. (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT. (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND. (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases. (sh_insn_operands_modified_between_p): Make non-static. * config/sh/predicates.md (zero_extend_movu_operand): Allow simple_mem_operand in addition to displacement_mem_operand. (zero_extend_operand): Don't allow zero_extend_movu_operand. (treg_set_expr, treg_set_expr_not_const01, arith_reg_or_treg_set_expr): New predicates. * config/sh/sh.md (tstsi_t): Use arith_reg_operand and arith_or_int_operand instead of logical_operand. Convert to insn_and_split. Try to optimize constant operand in splitter. (tsthi_t, tstqi_t): Fold into *tstmode_t. Convert to insn_and_split. (*tstqi_t_zero): Delete. (*tstmode_t_subregs): Add !sh_in_recog_treg_set_expr split condition. (tstsi_t_and_not): Delete. (tstmode_t_zero_extract_eq): Rename to *tstmode_t_zero_extract. Convert to insn_and_split. (unnamed split, tstsi_t_zero_extract_xor, tstsi_t_zero_extract_subreg_xor_little, tstsi_t_zero_extract_subreg_xor_big): Delete. (*tstsi_t_shift_mask): New insn_and_split. (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try to recombine with surrounding insns when splitting. (*negtstsi): Add !sh_in_recog_treg_set_expr condition. (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ... (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4, *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns. (*cbranch_div0s: Delete. (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01. (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb, *addc_r_r_msb, *addc_2r_msb): Delete. (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand order variant. (*addc_negreg_t): New insn_and_split. (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New insn_and_split patterns. (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with surrounding insns when splitting. (unnamed rotcr split): Use arith_reg_or_treg_set_expr. (*rotcl): Likewise. Add zero_extract variant. (*ashrsi2_31): New insn_and_split. (*negc): Convert to insn_and_split. Use treg_set_expr. (*zero_extendmodesi2_disp_mem): Update comment. (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split condition. (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine with surrounding insns when splitting. (any_treg_expr_to_reg): New insn_and_split. (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2, *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5, *neg_zero_extract_6, *zero_extract_0, *zero_extract_1, *zero_extract_2): New single bit zero extract patterns. (bld_reg, *bld_regqi): Fold into bldmode_reg. (*get_thread_pointersi, store_gbr, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movdi_gbr_load): Use arith_reg_dest instead of register_operand for set destination. (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of register_operand for
[Bug target/54236] [SH] Improve addc and subc insn utilization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54236 --- Comment #10 from Oleg Endo olegendo at gcc dot gnu.org --- Author: olegendo Date: Sat Jan 24 13:04:53 2015 New Revision: 220081 URL: https://gcc.gnu.org/viewcvs?rev=220081root=gccview=rev Log: gcc/ PR target/49263 PR target/53987 PR target/64345 PR target/59533 PR target/52933 PR target/54236 PR target/51244 * config/sh/sh-protos.h (sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn, sh_is_movrt_insn, sh_insn_operands_modified_between_p, sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr, sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions. (sh_treg_insns): New class. * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook. (scope_counter): New class. (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn, sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr, sh_in_recog_treg_set_expr, sh_try_split_insn_simple, sh_split_treg_set_expr): New functions. (addsubcosts): Handle treg_set_expr. (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT. (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND. (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases. (sh_insn_operands_modified_between_p): Make non-static. * config/sh/predicates.md (zero_extend_movu_operand): Allow simple_mem_operand in addition to displacement_mem_operand. (zero_extend_operand): Don't allow zero_extend_movu_operand. (treg_set_expr, treg_set_expr_not_const01, arith_reg_or_treg_set_expr): New predicates. * config/sh/sh.md (tstsi_t): Use arith_reg_operand and arith_or_int_operand instead of logical_operand. Convert to insn_and_split. Try to optimize constant operand in splitter. (tsthi_t, tstqi_t): Fold into *tstmode_t. Convert to insn_and_split. (*tstqi_t_zero): Delete. (*tstmode_t_subregs): Add !sh_in_recog_treg_set_expr split condition. (tstsi_t_and_not): Delete. (tstmode_t_zero_extract_eq): Rename to *tstmode_t_zero_extract. Convert to insn_and_split. (unnamed split, tstsi_t_zero_extract_xor, tstsi_t_zero_extract_subreg_xor_little, tstsi_t_zero_extract_subreg_xor_big): Delete. (*tstsi_t_shift_mask): New insn_and_split. (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try to recombine with surrounding insns when splitting. (*negtstsi): Add !sh_in_recog_treg_set_expr condition. (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ... (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4, *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns. (*cbranch_div0s: Delete. (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01. (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb, *addc_r_r_msb, *addc_2r_msb): Delete. (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand order variant. (*addc_negreg_t): New insn_and_split. (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New insn_and_split patterns. (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with surrounding insns when splitting. (unnamed rotcr split): Use arith_reg_or_treg_set_expr. (*rotcl): Likewise. Add zero_extract variant. (*ashrsi2_31): New insn_and_split. (*negc): Convert to insn_and_split. Use treg_set_expr. (*zero_extendmodesi2_disp_mem): Update comment. (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split condition. (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine with surrounding insns when splitting. (any_treg_expr_to_reg): New insn_and_split. (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2, *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5, *neg_zero_extract_6, *zero_extract_0, *zero_extract_1, *zero_extract_2): New single bit zero extract patterns. (bld_reg, *bld_regqi): Fold into bldmode_reg. (*get_thread_pointersi, store_gbr, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movdi_gbr_load): Use arith_reg_dest instead of register_operand for set destination. (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of register_operand for
[Bug target/53987] [SH] Unnecessary zero-extensions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987 --- Comment #10 from Oleg Endo olegendo at gcc dot gnu.org --- Author: olegendo Date: Sat Jan 24 13:04:53 2015 New Revision: 220081 URL: https://gcc.gnu.org/viewcvs?rev=220081root=gccview=rev Log: gcc/ PR target/49263 PR target/53987 PR target/64345 PR target/59533 PR target/52933 PR target/54236 PR target/51244 * config/sh/sh-protos.h (sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn, sh_is_movrt_insn, sh_insn_operands_modified_between_p, sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr, sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions. (sh_treg_insns): New class. * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook. (scope_counter): New class. (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn, sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr, sh_in_recog_treg_set_expr, sh_try_split_insn_simple, sh_split_treg_set_expr): New functions. (addsubcosts): Handle treg_set_expr. (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT. (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND. (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases. (sh_insn_operands_modified_between_p): Make non-static. * config/sh/predicates.md (zero_extend_movu_operand): Allow simple_mem_operand in addition to displacement_mem_operand. (zero_extend_operand): Don't allow zero_extend_movu_operand. (treg_set_expr, treg_set_expr_not_const01, arith_reg_or_treg_set_expr): New predicates. * config/sh/sh.md (tstsi_t): Use arith_reg_operand and arith_or_int_operand instead of logical_operand. Convert to insn_and_split. Try to optimize constant operand in splitter. (tsthi_t, tstqi_t): Fold into *tstmode_t. Convert to insn_and_split. (*tstqi_t_zero): Delete. (*tstmode_t_subregs): Add !sh_in_recog_treg_set_expr split condition. (tstsi_t_and_not): Delete. (tstmode_t_zero_extract_eq): Rename to *tstmode_t_zero_extract. Convert to insn_and_split. (unnamed split, tstsi_t_zero_extract_xor, tstsi_t_zero_extract_subreg_xor_little, tstsi_t_zero_extract_subreg_xor_big): Delete. (*tstsi_t_shift_mask): New insn_and_split. (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try to recombine with surrounding insns when splitting. (*negtstsi): Add !sh_in_recog_treg_set_expr condition. (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ... (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4, *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns. (*cbranch_div0s: Delete. (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01. (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb, *addc_r_r_msb, *addc_2r_msb): Delete. (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand order variant. (*addc_negreg_t): New insn_and_split. (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New insn_and_split patterns. (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with surrounding insns when splitting. (unnamed rotcr split): Use arith_reg_or_treg_set_expr. (*rotcl): Likewise. Add zero_extract variant. (*ashrsi2_31): New insn_and_split. (*negc): Convert to insn_and_split. Use treg_set_expr. (*zero_extendmodesi2_disp_mem): Update comment. (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split condition. (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine with surrounding insns when splitting. (any_treg_expr_to_reg): New insn_and_split. (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2, *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5, *neg_zero_extract_6, *zero_extract_0, *zero_extract_1, *zero_extract_2): New single bit zero extract patterns. (bld_reg, *bld_regqi): Fold into bldmode_reg. (*get_thread_pointersi, store_gbr, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movdi_gbr_load): Use arith_reg_dest instead of register_operand for set destination. (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of register_operand for
[Bug target/49263] SH Target: underutilized TST #imm, R0 instruction
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49263 --- Comment #25 from Oleg Endo olegendo at gcc dot gnu.org --- Author: olegendo Date: Sat Jan 24 13:04:53 2015 New Revision: 220081 URL: https://gcc.gnu.org/viewcvs?rev=220081root=gccview=rev Log: gcc/ PR target/49263 PR target/53987 PR target/64345 PR target/59533 PR target/52933 PR target/54236 PR target/51244 * config/sh/sh-protos.h (sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn, sh_is_movrt_insn, sh_insn_operands_modified_between_p, sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr, sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions. (sh_treg_insns): New class. * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook. (scope_counter): New class. (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn, sh_extending_set_of_reg::can_use_as_unextended_reg, sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr, sh_in_recog_treg_set_expr, sh_try_split_insn_simple, sh_split_treg_set_expr): New functions. (addsubcosts): Handle treg_set_expr. (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT. (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND. (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases. (sh_insn_operands_modified_between_p): Make non-static. * config/sh/predicates.md (zero_extend_movu_operand): Allow simple_mem_operand in addition to displacement_mem_operand. (zero_extend_operand): Don't allow zero_extend_movu_operand. (treg_set_expr, treg_set_expr_not_const01, arith_reg_or_treg_set_expr): New predicates. * config/sh/sh.md (tstsi_t): Use arith_reg_operand and arith_or_int_operand instead of logical_operand. Convert to insn_and_split. Try to optimize constant operand in splitter. (tsthi_t, tstqi_t): Fold into *tstmode_t. Convert to insn_and_split. (*tstqi_t_zero): Delete. (*tstmode_t_subregs): Add !sh_in_recog_treg_set_expr split condition. (tstsi_t_and_not): Delete. (tstmode_t_zero_extract_eq): Rename to *tstmode_t_zero_extract. Convert to insn_and_split. (unnamed split, tstsi_t_zero_extract_xor, tstsi_t_zero_extract_subreg_xor_little, tstsi_t_zero_extract_subreg_xor_big): Delete. (*tstsi_t_shift_mask): New insn_and_split. (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try to recombine with surrounding insns when splitting. (*negtstsi): Add !sh_in_recog_treg_set_expr condition. (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ... (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4, *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns. (*cbranch_div0s: Delete. (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01. (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb, *addc_r_r_msb, *addc_2r_msb): Delete. (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand order variant. (*addc_negreg_t): New insn_and_split. (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand. Try to recombine with surrounding insns when splitting. Add operand order variants. (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New insn_and_split patterns. (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with surrounding insns when splitting. (unnamed rotcr split): Use arith_reg_or_treg_set_expr. (*rotcl): Likewise. Add zero_extract variant. (*ashrsi2_31): New insn_and_split. (*negc): Convert to insn_and_split. Use treg_set_expr. (*zero_extendmodesi2_disp_mem): Update comment. (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split condition. (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine with surrounding insns when splitting. (any_treg_expr_to_reg): New insn_and_split. (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2, *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5, *neg_zero_extract_6, *zero_extract_0, *zero_extract_1, *zero_extract_2): New single bit zero extract patterns. (bld_reg, *bld_regqi): Fold into bldmode_reg. (*get_thread_pointersi, store_gbr, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movmode_gbr_load, *movdi_gbr_load): Use arith_reg_dest instead of register_operand for set destination. (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of register_operand for
[Bug fortran/64678] Expected association error on dependent associate statements
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64678 Harald Anlauf anlauf at gmx dot de changed: What|Removed |Added CC||anlauf at gmx dot de --- Comment #5 from Harald Anlauf anlauf at gmx dot de --- (In reply to Dominique d'Humieres from comment #4) Indeed, that's the easy workaround. I'd have thought the obvious definition for the single multi-associate statement would be to be a shortcut exactly equivalent to nested associates. In my mind it was not a workaround. From what I understand (little) of the Kargl's comment 1, the two forms should be either rejected or accepted. I tried NAG, PGI and xlf. All of them accept the 'nested' version, but only PGI accepts the original code. xlf 14: pr64678.f90, line 10.22: 1514-091 (S) Invalid structure component reference. The object name and all component names (except the rightmost) must be of type derived. NAG 6: NAG Fortran Compiler Release 6.0(Hibiya) Build 1032 Product NPL6A60NA for x86-64 Linux Copyright 1990-2014 The Numerical Algorithms Group Ltd., Oxford, U.K. f95comp version is Hibiya(6.0) Build 1032 Error: pr64678.f90, line 10: A is not of derived type detected at %@MAP So I think Steve has pointed into the right direction. Nevertheless, consider posting your code on c.l.f.
[Bug fortran/64771] New: ICE on invalid around check_dummy_characteristics / gfc_zero_size_array
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64771 Bug ID: 64771 Summary: ICE on invalid around check_dummy_characteristics / gfc_zero_size_array Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org The following program ICEs with -fcoarray=single and -fcoarray=lib: f951: internal compiler error: Segmentation fault 0xb8505f crash_signal ../../gcc/toplev.c:383 0x62e82b gfc_zero_size_array ../../gcc/fortran/arith.c:1637 0x62e82b reduce_binary0 ../../gcc/fortran/arith.c:1651 0x62e82b eval_intrinsic_f3 ../../gcc/fortran/arith.c:1700 0x666365 check_dummy_characteristics ../../gcc/fortran/interface.c:1212 interface subroutine conj_grad ( colidx, reduce_recv_starts, reduce_rrecv_starts ) integercolidx(5), rowstr(4+1) integer reduce_recv_starts(55)[0:*] end subroutine end interface call conj_grad ( colidx, reduce_rrecv_starts ) end subroutine conj_grad ( colidx, reduce_exch_proc, reduce_rrecv_starts ) integercolidx(5), rowstr(4+1) integer reduce_exch_proc(55) end
[Bug fortran/64771] ICE(segfault) when passing coarrays around; ICE in gfc_zero_size_array in arith.c:1637
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64771 Tobias Burnus burnus at gcc dot gnu.org changed: What|Removed |Added Keywords|ice-on-invalid-code |ice-on-valid-code CC||fanfarillo.gcc at gmail dot com, ||tkoenig at gcc dot gnu.org Summary|ICE on invalid around |ICE(segfault) when passing |check_dummy_characteristics |coarrays around; ICE in |/ gfc_zero_size_array |gfc_zero_size_array in ||arith.c:1637 --- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org --- Fails here the same way, and should be the same reason: https://gcc.gnu.org/ml/fortran/2015-01/msg00145.html - besides, the test case is shorter and valid: program cg implicit none integerreduce_recv_starts(2)[0:*] interface subroutine conj_grad (reduce_recv_starts) integer reduce_recv_starts(2)[0:*] end subroutine end interface call conj_grad (reduce_recv_starts) end subroutine conj_grad (reduce_recv_starts) implicit none integer reduce_recv_starts(2)[0:*] end ! end of routine conj_grad
[Bug fortran/64772] [4.9/5 Regression] ICE passing coarrays to subroutine
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64772 Dominique d'Humieres dominiq at lps dot ens.fr changed: What|Removed |Added Keywords||ice-on-valid-code Known to work||4.8.5 Known to fail||4.9.2, 5.0 --- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr --- Also a segfault in a very similar place with 4.9. I was about to say so!-)
[Bug c++/64767] Could GCC warn when a pointer is compared against '\0'?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64767 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2015-01-24 Ever confirmed|0 |1 Severity|enhancement |normal --- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org --- Confirming as a bug not an extension. In C++03 the code is valid because pointer conversions are allowed for integral constant expressions, such as '\0', but in C++11 pointer conversions are only allowed for an integer-literal and not a char-literal. So this should be an error in C++11, and adding a warning in C++03 at the same time would make sense (maybe enabled by -Wzero-as-null-pointer-constant and/or -Wc++11-compat) Clang gives a hard error with -std=c++11 warn.cc:4:9: error: comparison between pointer and integer ('void *' and 'int') if (p == '\0') ~ ^ 1 error generated. Similarly for initializing a pointer with a char-literal, for which clang gives an error in C++11 mode, and a warning for C++98. warn.cc:3:9: error: cannot initialize a variable of type 'void *' with an rvalue of type 'char' void* p = '\0'; ^ 1 error generated. warn.cc:3:13: warning: expression which evaluates to zero treated as a null pointer constant of type 'void *' [-Wnon-literal-null-conversion] void* p = '\0'; ^~~~ 1 warning generated.
[Bug fortran/64771] ICE(segfault) when passing coarrays around; ICE in gfc_zero_size_array in arith.c:1637
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64771 --- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org --- *** Bug 64772 has been marked as a duplicate of this bug. ***