[Bug gcov-profile/83669] Add version info to intermediate gcov file
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83669 --- Comment #1 from Martin Liška --- Author: marxin Date: Thu Jan 4 08:55:15 2018 New Revision: 256227 URL: https://gcc.gnu.org/viewcvs?rev=256227&root=gcc&view=rev Log: Add version to intermediate gcov file (PR gcov-profile/83669). 2018-01-04 Martin Liska PR gcov-profile/83669 * gcov.c (output_intermediate_file): Add version to intermediate gcov file. * doc/gcov.texi: Document new field 'version' in intermediate file format. Fix location of '-k' option of gcov command. Modified: trunk/gcc/ChangeLog trunk/gcc/doc/gcov.texi trunk/gcc/gcov.c
[Bug other/82352] [7/8 Regression] comdat-local function called by void h::i() outside its comdat
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82352 --- Comment #4 from Martin Liška --- Author: marxin Date: Thu Jan 4 08:54:17 2018 New Revision: 256226 URL: https://gcc.gnu.org/viewcvs?rev=256226&root=gcc&view=rev Log: Be careful about comdat boundary in ICF (PR ipa/82352). 2018-01-04 Martin Liska PR ipa/82352 * ipa-icf.c (sem_function::merge): Do not cross comdat boundary. 2018-01-04 Martin Liska PR ipa/82352 * g++.dg/ipa/pr82352.C: New test. Added: trunk/gcc/testsuite/g++.dg/ipa/pr82352.C Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-icf.c trunk/gcc/testsuite/ChangeLog
[Bug other/82352] [7 Regression] comdat-local function called by void h::i() outside its comdat
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82352 Martin Liška changed: What|Removed |Added Known to work||8.0 Summary|[7/8 Regression]|[7 Regression] comdat-local |comdat-local function |function called by void |called by void h::i() |h::i() outside its comdat |outside its comdat | --- Comment #5 from Martin Liška --- Fixed on trunk.
[Bug gcov-profile/83669] Add version info to intermediate gcov file
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83669 Martin Liška changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #2 from Martin Liška --- Fixed, no plans for backporting.
[Bug target/83628] performance regression when accessing arrays on alpha
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83628 Uroš Bizjak changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2018-01-04 Component|rtl-optimization|target Ever confirmed|0 |1 --- Comment #1 from Uroš Bizjak --- This is target issue. According to [1], some patterns needs to be updated from MULT to ASHIFT, and alpha was left behind. [1] https://gcc.gnu.org/ml/gcc-patches/2015-04/msg01841.html
[Bug tree-optimization/83668] [8 Regression] wrong code with -O -fno-tree-dominator-opts -fgraphite-identity
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83668 Martin Liška changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2018-01-04 CC||marxin at gcc dot gnu.org, ||rguenth at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Martin Liška --- Confirmed, started with Richi's r255579.
[Bug tree-optimization/83605] [6/7/8 Regression] ICE: verify_gimple failed (error: dead STMT in EH table)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83605 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek --- Started with r190220.
[Bug target/83628] performance regression when accessing arrays on alpha
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83628 Uroš Bizjak changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |ubizjak at gmail dot com --- Comment #2 from Uroš Bizjak --- Created attachment 43028 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43028&action=edit Proposed patch This patch changes several insn patterns to use canonical form using ASHIFT instead of MULT.
[Bug c++/83624] Strong using deprecation warning in C++03
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83624 --- Comment #4 from Jonathan Wakely --- Because it's not non-standard, inline namespaces are standard. That means the compiler already supports them, and will continue to do so. Supporting a different (inferior) way to achieve something similar is an additional maintenance burden.
[Bug target/83628] performance regression when accessing arrays on alpha
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83628 --- Comment #3 from uros at gcc dot gnu.org --- Author: uros Date: Thu Jan 4 09:42:01 2018 New Revision: 256228 URL: https://gcc.gnu.org/viewcvs?rev=256228&root=gcc&view=rev Log: PR target/83628 * config/alpha/alpha.md (*sadd): Use ASHIFT instead of MULT rtx. Update all corresponding splitters. (*saddl_se): Ditto. (*ssub): Ditto. (*ssubl_se): Ditto. (*cmp_sadd_di): Update split patterns. (*cmp_sadd_si): Ditto. (*cmp_sadd_sidi): Ditto. (*cmp_ssub_di): Ditto. (*cmp_ssub_si): Ditto. (*cmp_ssub_sidi): Ditto. * config/alpha/predicates.md (const23_operand): New predicate. * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]: Look for ASHIFT, not MULT inner operand. (alpha_split_conditional_move): Update for *sadd change. testsuite/ChangeLog: PR target/83628 * gcc.target/alpha/pr83628-1.c: New test. * gcc.target/alpha/pr83628-2.c: Ditto. Added: trunk/gcc/testsuite/gcc.target/alpha/pr83628-1.c trunk/gcc/testsuite/gcc.target/alpha/pr83628-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/alpha/alpha.c trunk/gcc/config/alpha/alpha.md trunk/gcc/config/alpha/predicates.md trunk/gcc/testsuite/ChangeLog
[Bug tree-optimization/83605] [6/7/8 Regression] ICE: verify_gimple failed (error: dead STMT in EH table)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83605 --- Comment #3 from Jakub Jelinek --- Created attachment 43029 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43029&action=edit gcc8-pr83605.patch While in theory we could handle this case (CSE of a possibly throwing stmt) by doing maybe_clean_or_replace_eh_stmt and purging dead eh edges and performing cfg cleanup, I'm worried about slsr changing the computations and not actually splitting blocks after any stmt that can throw that it inserts and finding out the right EH edges etc. I think it is far easier to just punt on optimizing stmts that can throw.
[Bug preprocessor/83602] [8 Regression] ICE in cpp_macro_definition_location(cpp_hashnode*) on invalid code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83602 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from Jakub Jelinek --- Fixed.
[Bug debug/83621] [8 Regression] ICE: in simplify_subreg, at simplify-rtx.c:6293 with -O -g
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83621 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #7 from Jakub Jelinek --- Fixed.
[Bug debug/83645] [8 Regression] ICE: in get_insn_template, at final.c:2100 with -gstatement-frontiers
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83645 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from Jakub Jelinek --- Fixed.
[Bug target/83554] [8 Regression] ICE: in ix86_mitigate_rop, at config/i386/i386.c:41274 with -mmitigate-rop
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83554 Jakub Jelinek changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2018-01-04 CC||jakub at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Jakub Jelinek --- Started with r255260.
[Bug middle-end/83675] [8 regression] Many SPARC tests FAIL with unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83675 --- Comment #3 from rsandifo at gcc dot gnu.org --- Author: rsandifo Date: Thu Jan 4 09:51:08 2018 New Revision: 256229 URL: https://gcc.gnu.org/viewcvs?rev=256229&root=gcc&view=rev Log: PR83675: Restore TARGET_VIS2 check for SPARC vec_perm_const I'd missed a TARGET_VIS2 condition when replacing vec_perm_const_optab with TARGET_VECTORIZE_VEC_PERM_CONST in r256093. 2018-01-04 Richard Sandiford gcc/ PR target/83675 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require TARGET_VIS2. Modified: trunk/gcc/ChangeLog trunk/gcc/config/sparc/sparc.c
[Bug middle-end/83675] [8 regression] Many SPARC tests FAIL with unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83675 --- Comment #4 from rsandifo at gcc dot gnu.org --- Patch applied -- thanks for the testing.
[Bug middle-end/83675] [8 regression] Many SPARC tests FAIL with unrecognizable insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83675 rsandifo at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from rsandifo at gcc dot gnu.org --- Fixed on trunk.
[Bug fortran/83679] New: [6 regression] r256113 causes regression on pr77942.f90
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83679 Bug ID: 83679 Summary: [6 regression] r256113 causes regression on pr77942.f90 Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: clyon at gcc dot gnu.org Target Milestone: --- Since r256113 (backport of fix for PR83650), I have noticed a regression: FAIL: gfortran.dg/pr77942.f90 -O (internal compiler error) It happens on aarch64 and arm targets. gfortran.log contains: f951: internal compiler error: Floating point exception 0xb56845 crash_signal /gcc/toplev.c:333 0x5f2807 gfc_simplify_cshift(gfc_expr*, gfc_expr*, gfc_expr*) /gcc/fortran/simplify.c:1842 0x57cff1 do_simplify /gcc/fortran/intrinsic.c:4158 0x57e2ad gfc_intrinsic_func_interface(gfc_expr*, int) /gcc/fortran/intrinsic.c:4528 0x5d3d66 resolve_unknown_f /gcc/fortran/resolve.c:2718 0x5d3d66 resolve_function /gcc/fortran/resolve.c:3013 0x5d3d66 gfc_resolve_expr(gfc_expr*) /gcc/fortran/resolve.c:6384 0x5d9ed1 gfc_resolve_code(gfc_code*, gfc_namespace*) /gcc/fortran/resolve.c:10514 0x5d84cc gfc_resolve_blocks(gfc_code*, gfc_namespace*) /gcc/fortran/resolve.c:9564 0x5d91aa gfc_resolve_code(gfc_code*, gfc_namespace*) /gcc/fortran/resolve.c:10504 0x5dac62 resolve_codes /gcc/fortran/resolve.c:15775 0x5dad65 gfc_resolve(gfc_namespace*) /gcc/fortran/resolve.c:15810 0x5c56db resolve_all_program_units /gcc/fortran/parse.c:5868 0x5c56db gfc_parse_file() /gcc/fortran/parse.c:6120 0x609972 gfc_be_parse_file /gcc/fortran/f95-lang.c:201
[Bug middle-end/83680] New: [8 regression] Numerous regressions on arm since r256093
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83680 Bug ID: 83680 Summary: [8 regression] Numerous regressions on arm since r256093 Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: clyon at gcc dot gnu.org Target Milestone: --- Created attachment 43030 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43030&action=edit gcc arm-none-linux-gnueabi Since r256093, I have noticed many regressions on arm* targets. The whole picture is at: http://people.linaro.org/~christophe.lyon/cross-validation/gcc/trunk/256093/report-build-info.html
[Bug middle-end/83680] [8 regression] Numerous regressions on arm since r256093
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83680 --- Comment #2 from Christophe Lyon --- Created attachment 43032 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43032&action=edit gcc armeb-none-linux-gnueabihf
[Bug middle-end/83680] [8 regression] Numerous regressions on arm since r256093
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83680 --- Comment #1 from Christophe Lyon --- Created attachment 43031 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43031&action=edit gcc arm-none-linux-gnueabihf
[Bug c/83676] Problems with sscanf parsing hex-floats
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83676 --- Comment #2 from Moritz K. --- Okay, I didn't know that.
[Bug middle-end/83680] [8 regression] Numerous regressions on arm since r256093
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83680 --- Comment #4 from Christophe Lyon --- Created attachment 43034 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43034&action=edit gfortran arm-none-linux-gnueabihf
[Bug middle-end/83680] [8 regression] Numerous regressions on arm since r256093
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83680 --- Comment #3 from Christophe Lyon --- Created attachment 43033 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43033&action=edit g++ arm-none-linux-gnueabihf
[Bug libstdc++/83607] std::boyer_moore_searcher is slow searching through arrays of std::byte
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83607 --- Comment #5 from Jonathan Wakely --- Author: redi Date: Thu Jan 4 10:21:29 2018 New Revision: 256231 URL: https://gcc.gnu.org/viewcvs?rev=256231&root=gcc&view=rev Log: PR libstdc++/83607 specialize Boyer-Moore searchers for std::byte PR libstdc++/83607 * include/std/functional (__is_byte_like): New trait. (__is_std_equal_to): Remove. (__boyer_moore_base_t): Use __is_byte_like instead of __is_std_equal_to. * include/experimental/functional (__is_std_equal_to): Remove. (__boyer_moore_base_t): Use __is_byte_like instead of __is_std_equal_to. * testsuite/20_util/function_objects/83607.cc: New test. Added: trunk/libstdc++-v3/testsuite/20_util/function_objects/83607.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/experimental/functional trunk/libstdc++-v3/include/std/functional
[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665 Markus Trippelsdorf changed: What|Removed |Added Keywords||needs-bisection Status|UNCONFIRMED |NEW Last reconfirmed||2018-01-04 Ever confirmed|0 |1 --- Comment #3 from Markus Trippelsdorf --- 403.gcc with -flto is now ~6% slower.
[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665 Markus Trippelsdorf changed: What|Removed |Added Target Milestone|--- |8.0
[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665 --- Comment #4 from Martin Liška --- I see change in r256072 that increased .text in gromacs from: 83.6% 743Ki .text 743Ki 14.4% to 83.8% 760Ki .text 760Ki 14.4%
[Bug target/83554] [8 Regression] ICE: in ix86_mitigate_rop, at config/i386/i386.c:41274 with -mmitigate-rop
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83554 Jakub Jelinek changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek --- Created attachment 43035 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43035&action=edit gcc8-pr83554.patch Untested fix.
[Bug debug/83666] [8 Regression] ICE: SIGFPE with -O2 -g --param=sccvn-max-scc-size=10
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83666 --- Comment #3 from Jakub Jelinek --- Author: jakub Date: Thu Jan 4 11:44:07 2018 New Revision: 256232 URL: https://gcc.gnu.org/viewcvs?rev=256232&root=gcc&view=rev Log: PR debug/83666 * cfgexpand.c (expand_dbeug_expr) : Punt if mode is BLKmode and bitpos not zero or mode change is needed. * gcc.dg/pr83666.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr83666.c Modified: trunk/gcc/ChangeLog trunk/gcc/cfgexpand.c trunk/gcc/testsuite/ChangeLog
[Bug debug/83666] [8 Regression] ICE: SIGFPE with -O2 -g --param=sccvn-max-scc-size=10
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83666 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #4 from Jakub Jelinek --- Fixed.
[Bug c++/83627] -Wdelete-non-virtual-dtor doesn't trigger when calling destructor by hand
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83627 --- Comment #2 from Jonathan Wakely --- Tangentially related: Bug 60262
[Bug target/83681] New: epiphany: config/epiphany/epiphany.h:883:8: error: unknown type name 'rtl_opt_pass'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83681 Bug ID: 83681 Summary: epiphany: config/epiphany/epiphany.h:883:8: error: unknown type name 'rtl_opt_pass' Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: sebastian.hu...@embedded-brains.de Target Milestone: --- I cannot build an epiphany-rtems5 Ada compiler: /run/user/10351/b-gcc-epiphany/./gcc/xgcc -B/run/user/10351/b-gcc-epiphany/./gcc/ -nostdinc -B/run/user/10351/b-gcc-epiphany/epiphany-rtems5/newlib/ -isystem /run/user/10351/b-gcc-epiphany/epiphany-rtems5/newlib/targ-include -isystem /home/sh/src/gcc/newlib/libc/include -B/home/sh/install/epiphany-rtems5/bin/ -B/home/sh/install/epiphany-rtems5/lib/ -isystem /home/sh/install/epiphany-rtems5/include -isystem /home/sh/install/epiphany-rtems5/sys-include-c -DCROSS_DIRECTORY_STRUCTURE -DIN_GCC -W -Wall -g -O2 -g -O2 -fexceptions -DIN_RTS -DHAVE_GETIPINFO\ -iquote /home/sh/src/gcc/gcc \ -iquote . -iquote .. -iquote ../.. -iquote /home/sh/src/gcc/gcc/ada -iquote /home/sh/src/gcc/gcc -I/home/sh/src/gcc/include \ targext.c -o targext.o In file included from ../../tm.h:21, from targext.c:46: /home/sh/src/gcc/gcc/config/epiphany/epiphany.h:883:8: error: unknown type name 'rtl_opt_pass' extern rtl_opt_pass *make_pass_mode_switch_use (gcc::context *ctxt); ^~~~ /home/sh/src/gcc/gcc/config/epiphany/epiphany.h:883:52: error: expected ')' before ':' token extern rtl_opt_pass *make_pass_mode_switch_use (gcc::context *ctxt); ^ ) /home/sh/src/gcc/gcc/config/epiphany/epiphany.h:884:8: error: unknown type name 'rtl_opt_pass' extern rtl_opt_pass *make_pass_resolve_sw_modes (gcc::context *ctxt); ^~~~ /home/sh/src/gcc/gcc/config/epiphany/epiphany.h:884:53: error: expected ')' before ':' token extern rtl_opt_pass *make_pass_resolve_sw_modes (gcc::context *ctxt); ^ ) In file included from ../../tm.h:23, from targext.c:46: /home/sh/src/gcc/gcc/config/elfos.h:201: warning: "READONLY_DATA_SECTION_ASM_OP" redefined #define READONLY_DATA_SECTION_ASM_OP "\t.section\t.rodata" In file included from ../../tm.h:21, from targext.c:46: /home/sh/src/gcc/gcc/config/epiphany/epiphany.h:671: note: this is the location of the previous definition #define READONLY_DATA_SECTION_ASM_OP "\t.section .rodata"
[Bug rtl-optimization/83628] [8 Regression] performance regression when accessing arrays on alpha
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83628 Uroš Bizjak changed: What|Removed |Added Status|ASSIGNED|NEW CC||law at gcc dot gnu.org, ||rsandifo at gcc dot gnu.org, ||segher at gcc dot gnu.org Component|target |rtl-optimization Assignee|ubizjak at gmail dot com |unassigned at gcc dot gnu.org Target Milestone|--- |8.0 Summary|performance regression when |[8 Regression] performance |accessing arrays on alpha |regression when accessing ||arrays on alpha --- Comment #4 from Uroš Bizjak --- The remaining regression is in make_compound_operation function in combine.c. In the following testcase: int test (int a, int b) { return a + b * 4; } the compiler (gcc-5) combined: (insn 7 4 8 2 (set (reg:DI 76) (ashift:DI (reg/v:DI 74 [ b ]) (const_int 2 [0x2]))) cmp.c:3 64 {ashldi3} (expr_list:REG_DEAD (reg/v:DI 74 [ b ]) (nil))) (insn 8 7 9 2 (set (reg:SI 75 [ D.1494 ]) (plus:SI (subreg:SI (reg:DI 76) 0) (subreg/s/u:SI (reg/v:DI 73 [ a ]) 0))) cmp.c:3 3 {addsi3} (expr_list:REG_DEAD (reg:DI 76) (expr_list:REG_DEAD (reg/v:DI 73 [ a ]) (nil into: Trying 7 -> 8: Successfully matched this instruction: (set (reg:SI 75 [ D.1494 ]) (plus:SI (mult:SI (reg:SI 17 $17 [ b ]) (const_int 4 [0x4])) (reg:SI 16 $16 [ a ]))) This is not the case anymore, the compiler (gcc-8) fails combination with: Trying 7 -> 8: 7: r75:DI=$17:DI<<0x2 REG_DEAD $17:DI 8: r74:SI=$16:SI+r75:DI#0 REG_DEAD $16:DI REG_DEAD r75:DI Failed to match this instruction: (set (reg:SI 74) (plus:SI (subreg:SI (ashift:DI (reg:DI 17 $17 [ b ]) (const_int 2 [0x2])) 0) (reg:SI 16 $16 [ a ]))) This is a rtl-optimization regression from gcc-5 branch.
[Bug rtl-optimization/83628] [8 Regression] performance regression when accessing arrays on alpha
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83628 --- Comment #5 from Segher Boessenkool --- The MULT is not canonical. For some reason we do not realise we can do the ASHIFT as SI instead of DI.
[Bug target/83554] [8 Regression] ICE: in ix86_mitigate_rop, at config/i386/i386.c:41274 with -mmitigate-rop
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83554 --- Comment #3 from Uroš Bizjak --- Comment on attachment 43035 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43035 gcc8-pr83554.patch >(any_rotate:HI (match_dup 0) (const_int 8))) > (clobber (reg:CC FLAGS_REG))] > "reload_completed >- && (TARGET_USE_XCHGB || optimize_function_for_size_p (cfun))" >+ && (TARGET_USE_XCHGB || optimize_function_for_size_p (cfun)) >+ && QI_REG_P (operands[0])" You can use QIreg_operand as operand predicate in this pattern.
[Bug target/83507] [8 Regression] ICE in internal_dfa_insn_code_* for powerpc targets
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83507 --- Comment #1 from Segher Boessenkool --- I cannot reproduce this on either powerpc-linux or powerpc64-linux.
[Bug c/83682] New: [8 Regression] ICE in simplify_subreg, at simplify-rtx.c:6296
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83682 Bug ID: 83682 Summary: [8 Regression] ICE in simplify_subreg, at simplify-rtx.c:6296 Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: doko at gcc dot gnu.org Target Milestone: --- seen building the cen64 package, trunk r256068 on x86_64-linux-gnu $ cat cp1.i typedef float a __attribute__((__vector_size__(16))); a b; __attribute__((__vector_size__(2 * sizeof(double double c; void *memcpy(); void d() { a e, g; float f; e = __builtin_ia32_cvtsd2ss(b, c); g = e; f = g[0]; memcpy(d, &f, sizeof(f)); } $ gcc -std=c99 -c -O2 cp1.i during RTL pass: combine cp1.i: In function 'd': cp1.i:12:1: internal compiler error: in simplify_subreg, at simplify-rtx.c:6296 } ^ Please submit a full bug report, with preprocessed source if appropriate.
[Bug target/83507] [8 Regression] ICE in internal_dfa_insn_code_* for powerpc targets
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83507 Segher Boessenkool changed: What|Removed |Added Keywords|ice-on-valid-code |ice-on-invalid-code --- Comment #2 from Segher Boessenkool --- It uses w4 uninitialised, so it is invalid code, too.
[Bug rtl-optimization/83628] [8 Regression] performance regression when accessing arrays on alpha
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83628 --- Comment #6 from Uroš Bizjak --- On a related note, gcc-5 (-O2) was able to also simplify: int test (int a, int b, int c) { return (a < b) * 4 + c; } cmplt $16,$17,$17 s4addl $17,$18,$0 ret $31,($26),1 where gcc-8 emits: cmplt $16,$17,$0 s4addq $0,0,$0 addl $0,$18,$0 ret $31,($26),1 gcc-5 is able to if-convert to: (insn 30 10 15 2 (set (reg:DI 70 [ D.1498 ]) (if_then_else:DI (ne (reg:DI 76) (const_int 0 [0])) (const_int 4 [0x4]) (const_int 0 [0]))) cmp1.c:5 161 {*movdicc_internal} (nil)) which is later combined with: (insn 15 30 16 2 (set (reg:SI 77 [ D.1498 ]) (plus:SI (subreg/s/u:SI (reg:DI 70 [ D.1498 ]) 0) (subreg/s/u:SI (reg/v:DI 75 [ c ]) 0))) cmp1.c:5 3 {addsi3} (expr_list:REG_DEAD (reg/v:DI 75 [ c ]) (expr_list:REG_DEAD (reg:DI 70 [ D.1498 ]) (nil to: Trying 30 -> 15: Successfully matched this instruction: (set (reg:SI 77 [ D.1498 ]) (plus:SI (mult:SI (subreg:SI (reg:DI 76) 0) (const_int 4 [0x4])) (reg:SI 18 $18 [ c ]))) gcc-8 is not able to if-convert...
[Bug fortran/83683] New: eoshift accepts wrong-length boundary
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83683 Bug ID: 83683 Summary: eoshift accepts wrong-length boundary 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 Target Milestone: --- The following should be rejected: program main implicit none integer :: i character(len=3) :: e(2,3,4) e = reshape([(repeat(achar(i),3),i=iachar('a'),iachar('a')+2*3*4-1)], shape(e)) print *,eoshift(e,1,boundary="1") end program main From the F2003 standard 13.7.52: "BOUNDARY (optional) shall be of the same type and type parameters as ARRAY"
[Bug c++/81933] [7/8 Regression] Invalid "constexpr call flows off the end of the function" error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81933 --- Comment #5 from Marek Polacek --- Here's what happens. We get the "flows off" error because: 4151 if (tree init = DECL_INITIAL (r)) 4152 { 4153 init = cxx_eval_constant_expression (ctx, init, 4154 false, 4155 non_constant_p, overflow_p); 4156 /* Don't share a CONSTRUCTOR that might be changed. */ 4157 init = unshare_constructor (init); 4158 ctx->values->put (r, init); 4159 } r's DECL_INITIAL is null and we don't put the CONSTRUCTOR in ctx->values. So here: 1702 result = *ctx->values->get (slot ? slot : res); 1703 if (result == NULL_TREE && !*non_constant_p) 1704 { 1705 if (!ctx->quiet) 1706 error ("% call flows off the end " 1707"of the function"); 1708 *non_constant_p = true; 1709 } result is null -> error. Why was the DECL_INITIAL null? Because in c++17 we execute the hunk in Comment 4, which puts some additional fields into some classes. This makes a difference for split_nonconstant_init: 751 if (split_nonconstant_init_1 (dest, init)) 752 init = NULL_TREE; where split_nonconstant_init_1 is true so that means that the DECL_INITIAL will be null. Why is split_nonconstant_init_1 true? Because it ends up calling complete_ctor_at_level_p with 6114 return count_type_elements (type, true) == num_elts; but the count_type_elements result differs between c++14/c++17 precisely because of the fields added in build_base_field. But we should only add those fields when initializing aggregates with bases, which is not what's happening in Comment 2's testcase.
[Bug fortran/83683] eoshift accepts wrong-length boundary
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83683 Thomas Koenig changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2018-01-04 Assignee|unassigned at gcc dot gnu.org |tkoenig at gcc dot gnu.org Ever confirmed|0 |1
[Bug middle-end/83684] New: [5 Regression] ICE in maybe_diag_overlap, at gimple-ssa-warn-restrict.c:1371
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83684 Bug ID: 83684 Summary: [5 Regression] ICE in maybe_diag_overlap, at gimple-ssa-warn-restrict.c:1371 Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: doko at gcc dot gnu.org Target Milestone: --- Created attachment 43036 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43036&action=edit preprocessed source seen building courier 0.78 on x86_64-linux-gnu, r256068. while I get the preprocessed source from the ICE, I'm unable to reproduce this using the preprocessed source. libtool: compile: gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/home/ packages/tmp/gcc/courier-0.78.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic -Wall -I./.. -I.. -I./../.. -I../.. -c maildirnewshared.c -fPIC -DPIC -o .libs/maildirnewshared.o during GIMPLE pass: strlen maildirnewshared.c: In function 'maildir_newshared_next': maildirnewshared.c:53:5: internal compiler error: in maybe_diag_overlap, at gimple-ssa-warn-restrict.c:1371 int maildir_newshared_next(struct maildir_newshared_enum_cb *info, ^~ Please submit a full bug report, with preprocessed source if appropriate.
[Bug target/83466] Wrong TLS GD sequence for ILP32
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83466 --- Comment #5 from Andreas Schwab --- This also fixes the original failure: miscompiled efl that causes python3-efl to fail to build.
[Bug middle-end/83685] New: [8 Regression] ICE: SSA corruption
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83685 Bug ID: 83685 Summary: [8 Regression] ICE: SSA corruption Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: doko at gcc dot gnu.org Target Milestone: --- seen building covered on x86_64-linux-gnu, r256068. $ gcc -c -O2 score.i Unable to coalesce ssa_names 4 and 17 which are marked as MUST COALESCE. e_4(ab) and e_17(ab) during RTL pass: expand score.i: In function 'd': score.i:5:6: internal compiler error: SSA corruption void d() { ^ Please submit a full bug report, with preprocessed source if appropriate.
[Bug target/83387] PowerPC64: Infinite loops in do_reload() with -msoft-float
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83387 --- Comment #18 from Peter Bergner --- Author: bergner Date: Thu Jan 4 14:36:35 2018 New Revision: 256250 URL: https://gcc.gnu.org/viewcvs?rev=256250&root=gcc&view=rev Log: PR target/83387 * config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not allow arguments in FP registers if TARGET_HARD_FLOAT is false. Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000.c
[Bug rtl-optimization/83575] [8 Regression] ICE: verify_flow_info failed (error: multiple hot/cold transitions found)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83575 Jakub Jelinek changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2018-01-04 CC||hubicka at gcc dot gnu.org, ||jakub at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #3 from Jakub Jelinek --- Started with r254379.
[Bug middle-end/83680] [8 regression] Numerous regressions on arm since r256093
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83680 --- Comment #5 from rsandifo at gcc dot gnu.org --- Author: rsandifo Date: Thu Jan 4 14:39:03 2018 New Revision: 256251 URL: https://gcc.gnu.org/viewcvs?rev=256251&root=gcc&view=rev Log: PR83680: Inverted test in arm_vectorize_vec_perm_const 2018-01-04 Richard Sandiford gcc/ PR target/83680 * config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted test for d.testing. Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/arm.c
[Bug c++/81933] [7/8 Regression] Invalid "constexpr call flows off the end of the function" error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81933 --- Comment #6 from Marek Polacek --- And I bet the solution will be to handle empty classes in split_nonconstant_init_1 or somewhere similar.
[Bug middle-end/83680] [8 regression] Numerous regressions on arm since r256093
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83680 rsandifo at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #6 from rsandifo at gcc dot gnu.org --- Patch applied.
[Bug middle-end/83685] [8 Regression] ICE: SSA corruption
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83685 --- Comment #1 from Matthias Klose --- $ cat score.i int b; char c; int _setjmp(); void a(); void d() { int e; while (b) { if (_setjmp()) a(e); if (c) { e--; a(); } e++; } }
[Bug target/83387] PowerPC64: Infinite loops in do_reload() with -msoft-float
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83387 Peter Bergner changed: What|Removed |Added Status|NEW |ASSIGNED URL||https://gcc.gnu.org/ml/gcc- ||patches/2018-01/msg00216.ht ||ml Target Milestone|--- |8.0
[Bug target/83387] PowerPC64: Infinite loops in do_reload() with -msoft-float
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83387 Peter Bergner changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #19 from Peter Bergner --- Patch committed.
[Bug fortran/83683] eoshift accepts wrong-length boundary
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83683 --- Comment #1 from Thomas Koenig --- Another thing that is incorrectly accepted, also with -fcheck=bounds: program main implicit none integer :: n integer :: i,n1, n2, n3 character(len=3), parameter :: e(2,3,4) = reshape([(repeat(achar(i),3),i=iachar('a'),iachar('a')+2*3*4-1)], & shape(e)) character(len=3), parameter :: bnd2(3,5) = reshape([(repeat(achar(i),3),i=iachar('A'),iachar('A')+3*5-1)], & shape(bnd2)) character(len=3) :: f2(2,3,4) ! = eoshift(e,shift=-1,boundary=bnd2); n = -1 f2 = eoshift(e,shift=n,boundary=bnd2); ! bnd2 has wrong bounds print '(*(1H",A,1H",:","))',f2 end program main
[Bug c++/83686] New: [8 Regression] ICE (segfault) in determine_visibility
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83686 Bug ID: 83686 Summary: [8 Regression] ICE (segfault) in determine_visibility Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: doko at gcc dot gnu.org Target Milestone: --- seen with r256068 on x86_64-linux-gnu, extracted from building akonadiconsole: $ cat monitorsmodel.ii # 8 "" 3 class a { b(const &) const; int f; }; template d(c) { [] { enum {}; }; } a::b(const &) const { auto e = f; d(e); } $ g++ -std=gnu++11 -c -O0 monitorsmodel.ii : In instantiation of 'int d(c) [with c = int]': :17:6: required from here :13:13: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. Program received signal SIGSEGV, Segmentation fault. 0x007194d8 in determine_visibility(tree_node*) () (gdb) bt #0 0x007194d8 in determine_visibility(tree_node*) () #1 0x007ace3e in lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) () #2 0x005962d2 in ?? () #3 0x007a4c9c in tsubst(tree_node*, tree_node*, int, tree_node*) () #4 0x007b41bf in ?? () #5 0x007a4fc0 in tsubst(tree_node*, tree_node*, int, tree_node*) () #6 0x0079f9c3 in ?? () #7 0x0079f1e6 in ?? () #8 0x0079f2fc in ?? () #9 0x0079f2fc in ?? () #10 0x007a0fc3 in tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) () #11 0x007a2472 in ?? () #12 0x0079f361 in ?? () #13 0x0079ed96 in ?? () #14 0x0079f1e6 in ?? () #15 0x0079f2fc in ?? () #16 0x0079d551 in instantiate_decl(tree_node*, bool, bool) () #17 0x007b76ec in instantiate_pending_templates(int) () #18 0x0071cc2c in c_parse_final_cleanups() () #19 0x00be025f in ?? () #20 0x006b2830 in toplev::main(int, char**) () #21 0x006b4b0b in main ()
[Bug target/82096] ICE in int_mode_for_mode, at stor-layout.c:403 with arm-linux-gnueabi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82096 sudi at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed|2017-12-19 00:00:00 |2018-01-04 Ever confirmed|0 |1 --- Comment #6 from sudi at gcc dot gnu.org --- Patch submitted https://gcc.gnu.org/ml/gcc-patches/2018-01/msg00219.html
[Bug c++/83686] [8 Regression] ICE (segfault) in determine_visibility
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83686 Markus Trippelsdorf changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||trippels at gcc dot gnu.org Resolution|--- |DUPLICATE --- Comment #1 from Markus Trippelsdorf --- dup. *** This bug has been marked as a duplicate of bug 82882 ***
[Bug c++/82882] [8 regression] ICE Segmentation fault
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82882 Markus Trippelsdorf changed: What|Removed |Added CC||doko at gcc dot gnu.org --- Comment #5 from Markus Trippelsdorf --- *** Bug 83686 has been marked as a duplicate of this bug. ***
[Bug target/83687] New: ARM NEON invalid optimisation for vabd/vabdl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83687 Bug ID: 83687 Summary: ARM NEON invalid optimisation for vabd/vabdl Product: gcc Version: 7.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: nicholas at nicholaswilson dot me.uk Target Milestone: --- When compiling for ARM, the optimiser appears to do an invalid optimisation, by attempting to the reduce the sequence subtract-then-abs into the single instruction absolute-difference. Unfortunately the two are *not* equivalent. === Test file (test.c) === // COMPILE WITH: gcc -c -O1 -o test.o test.c -mfpu=neon #include int8_t testFunction1(int8_t a, int8_t b) { volatile int8x16_t sub = vsubq_s8(vdupq_n_s8(a), vdupq_n_s8(b)); int8x16_t abs = vabsq_s8(sub); return vgetq_lane_s8(abs, 0); } int8_t testFunction2(int8_t a, int8_t b) { int8x16_t sub = vsubq_s8(vdupq_n_s8(a), vdupq_n_s8(b)); int8x16_t abs = vabsq_s8(sub); return vgetq_lane_s8(abs, 0); } === Result === $ objdump -d test.o test.o: file format elf32-littlearm Disassembly of section .text: : 0: e24dd010sub sp, sp, #16 4: eee00b90vdup.8 q8, r0 8: eee21b90vdup.8 q9, r1 c: f34008e2vsub.i8 q8, q8, q9 10: f44d0adfvst1.64 {d16-d17}, [sp :64] 14: f46d0adfvld1.64 {d16-d17}, [sp :64] 18: f3f10360vabs.s8 q8, q8 1c: ee500b90vmov.s8 r0, d16[0] 20: e28dd010add sp, sp, #16 24: e12fff1ebx lr 0028 : 28: eee00b90vdup.8 q8, r0 2c: eee21b90vdup.8 q9, r1 30: f24007e2vabd.s8 q8, q8, q9 34: ee500b90vmov.s8 r0, d16[0] 38: e12fff1ebx lr As you can see, the vsub/vabs sequence is optimised to vabd unless "volatile" is used to prevent it. === Second test, to show that the behaviour differs === // COMPILE WITH: gcc -o a.out test.o main.c && ./a.out #include #include int8_t testFunction1(int8_t a, int8_t b); int8_t testFunction2(int8_t a, int8_t b); int main() { printf("vabs(vsub(-100,100)) = %u\n", (uint8_t)testFunction1(-100, 100)); printf("vabd(-100,100) = %u\n", (uint8_t)testFunction2(-100, 100)); return 0; } // Result, prints: // vabs(vsub(-100,100)) = 56 [ because vsub(-100,100) wraps to 56 ] // vabd(-100,100) = 200 [ because vabd does abs over the 9-bit diff ] === Final observations === * Behaviour does not repro at -O0, does at -O1, -O2. * Behaviour does not repro with the following set of options, but does repro if any of these options are removed: -O1 -fno-if-conversion -fno-forward-propagate -fno-tree-copy-prop \ -fno-tree-copyrename -fno-tree-dominator-opts -fno-tree-ter Currently, I'm using the "volatile" hack to prevent the vabd instruction from being emitted. This hurts perf a bit (redundant store/load to the stack) but at least it works. Tested with: GCC 4.6.0, GCC 6.3.0, and GCC 7.2.0. Hardware: Raspberry Pi, ARMv7l BCM2835 and BCM2709 === GCC 6.3 configuration === Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper Target: arm-linux-gnueabihf Configured with: ../src/configure -v --with-pkgversion='Raspbian 6.3.0-18+rpi1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf Thread model: posix gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1) === GCC 7.2.0 configuration === Using built-in specs. COLLECT_GCC=/usr/local/gcc-7.2.0/bin/gcc-7.2.0 COLLECT_LTO_WRAPPER=/usr/local/gcc-7.2.0/libexec/gcc/arm-linux-gnueabihf/7.2.0/lto-wrapper Target: arm-linux-gnueabihf Configured with: ../gcc-7.2.0/configure -v --enable-languages=c,c++,fortran --prefix=/usr/local/gcc-7.2.0 --program-suffix=-7.2.0 --with-arch=armv6 --with-fpu=vfp --with-float=hard -
[Bug other/82352] [7 Regression] comdat-local function called by void h::i() outside its comdat
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82352 --- Comment #6 from Holger Hopp --- The patch fixes my >10 original issues with gcc-7. It also fixes similar (other, fewer) issues with gcc-6 (gcc-6.2.1 was ok, gcc-6.3.1 not ok, with patch ok). So please downport this patch also to gcc-6 branch. Thanks!
[Bug c/83688] New: Please check if buffers may overlap when copying strings
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83688 Bug ID: 83688 Summary: Please check if buffers may overlap when copying strings Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: bugzi...@poradnik-webmastera.com Target Milestone: --- Functions like strcpy internally use memcpy to copy data. This may cause problems when someone will try to use them to move string in buffer, e.g. to strip prefix. gcc is able to detect if overlapping buffers are used with memcpy. Please add similar diagnostics to strcpy/sprintf functions too. [code] #include #include char buf[20]; void test() { strcpy(buf, buf+5); memcpy(buf, buf+5, strlen(buf+5)+1); snprintf(buf, sizeof(buf), "%s", buf+5); memcpy(buf, buf+5, 10); } [/code] [out] $ g++ -c -o test.o test.cc -O3 -Wall -Wextra -Wformat-overflow -Wformat-truncation -Wstringop-overflow=2 -Wstringop-truncation test.cc: In function ‘void test()’: test.cc:13:11: warning: ‘void* memcpy(void*, const void*, size_t)’ accessing 10 bytes at offsets 0 and 5 overlaps 5 bytes at offset 5 [-Wrestrict] memcpy(buf, buf+5, 10); ~~^~~~ $ g++ --version g++ (GCC) 8.0.0 20171231 (experimental) [/out]
[Bug c++/83667] ICE in dump_function_decl on a thunk with variadic arguments
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83667 --- Comment #3 from Nathan Sidwell --- Author: nathan Date: Thu Jan 4 15:49:28 2018 New Revision: 256254 URL: https://gcc.gnu.org/viewcvs?rev=256254&root=gcc&view=rev Log: [PR c++/83667] Fix tree_dump ICE https://gcc.gnu.org/ml/gcc-patches/2018-01/msg00218.html PR c++/83667 * g++.dg/ipa/pr83667.C: Fix regex, require alias. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/ipa/pr83667.C
[Bug c/83688] Please check if buffers may overlap when copying strings
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83688 --- Comment #1 from Daniel Fruzynski --- This also would allow to catch code which use sprintf to concatenate strings, what is an undefined behavior (snippet from https://linux.die.net/man/3/snprintf): sprintf(buf, "%s some further text", buf);
[Bug c/83559] [8 regression] -Wsuggest-attribute=const conflicts with -Wattributes warning about const attribute on function returning void
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83559 --- Comment #5 from Eric Gallager --- (In reply to Martin Sebor from comment #4) > Fixed in r256188. Thanks for the quick fix! One thing I'm still wondering, though, what's the recommended way for maintaining compatibility with old compilers that still have the old -Wsuggest-attribute=const? A bunch of ifdefs?
[Bug c/83688] Please check if buffers may overlap when copying strings
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83688 Martin Sebor changed: What|Removed |Added Keywords||diagnostic Status|UNCONFIRMED |NEW Last reconfirmed||2018-01-04 CC||msebor at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Martin Sebor --- Strcpy is already handled by -Wrestrict, as are all other string built-ins. There may be gaps in the coverage of some of them due to weaknesses in optimizations but if you find cases where GCC doesn't warn but should please open bugs for them. I posted a patch to add -Wrestrict for sprintf back in July (https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00036.html) but for various reasons it didn't make it into GCC 8. I'm hoping to get to it in GCC 9 so let me use this request to track that task.
[Bug c/83688] Please check if buffers may overlap when copying strings using sprintf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83688 Martin Sebor changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |msebor at gcc dot gnu.org Summary|Please check if buffers may |Please check if buffers may |overlap when copying|overlap when copying |strings |strings using sprintf
[Bug c/82922] Request: add -Wstrict-prototypes to -Wextra as K&R style is obsolescent
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82922 Martin Sebor changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2018-01-04 CC||msebor at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Martin Sebor --- Confirmed.
[Bug c++/83689] New: Internal compiler error using is_trivially_default_constructible on array of nontrivially-destructible types
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83689 Bug ID: 83689 Summary: Internal compiler error using is_trivially_default_constructible on array of nontrivially-destructible types Product: gcc Version: 7.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: zhangxy at google dot com Target Milestone: --- The following code triggers internal compiler error (see https://godbolt.org/g/dXRbdK for more details and comparison with clang): /opt/compiler-explorer/gcc-7.2.0/include/c++/7.2.0/type_traits: In instantiation of 'struct std::is_trivially_constructible': /opt/compiler-explorer/gcc-7.2.0/include/c++/7.2.0/type_traits:1373:12: required from 'struct std::is_trivially_default_constructible' 31 : :31:84: required from here /opt/compiler-explorer/gcc-7.2.0/include/c++/7.2.0/type_traits:1366:12: internal compiler error: in build_value_init_noctor, at cp/init.c:483 struct is_trivially_constructible ^~ mmap: Invalid argument ``` #include class NontrivialDefaultCtor { public: NontrivialDefaultCtor() {} }; void f() { using NontrivialDefaultCtor10 = NontrivialDefaultCtor[10]; static_assert(!std::is_trivially_default_constructible::value, "This should be false"); } ```
[Bug debug/83585] [8 Regression] Assembler messages: Error: can't resolve `.text' {.text section} - `.LCOLDB0' {.text.unlikely section}
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83585 --- Comment #7 from Jakub Jelinek --- Author: jakub Date: Thu Jan 4 17:47:55 2018 New Revision: 256256 URL: https://gcc.gnu.org/viewcvs?rev=256256&root=gcc&view=rev Log: PR debug/83585 * bb-reorder.c (insert_section_boundary_note): Set has_bb_partition to switched_sections. * gcc.dg/pr83585.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr83585.c Modified: trunk/gcc/ChangeLog trunk/gcc/bb-reorder.c trunk/gcc/testsuite/ChangeLog
[Bug debug/83585] [8 Regression] Assembler messages: Error: can't resolve `.text' {.text section} - `.LCOLDB0' {.text.unlikely section}
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83585 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #8 from Jakub Jelinek --- Fixed.
[Bug c++/83689] Internal compiler error using is_trivially_default_constructible on array of nontrivially-destructible types
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83689 Jakub Jelinek changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2018-01-04 CC||jakub at gcc dot gnu.org, ||ville at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Jakub Jelinek --- Reduced testcase without headers: template struct A { static constexpr _Tp a = __v; }; template struct B : public A {}; struct C { C () {} }; void foo () { using D = C[10]; static_assert (!B::a, ""); } This got fixed with r248788 aka PR80812. Ville, shall we backport?
[Bug c++/83689] Internal compiler error using is_trivially_default_constructible on array of nontrivially-destructible types
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83689 --- Comment #2 from Jakub Jelinek --- #include struct X { X() {} }; void test01() { static_assert(std::is_trivially_constructible::value); } ICEs too (but not std::is_constructible).
[Bug c/83688] Please check if buffers may overlap when copying strings using sprintf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83688 --- Comment #3 from Daniel Fruzynski --- Looks that something is not working properly. I have pasted output from compilation of function in 1st post, and -Wrestrict complained only about last memcpy call. Please take a look on this. BTW, string concatenation using sprintf causes -Wformat-overflow warning, so some protection against this is present. However this message does not say anything that this is undefined behavior per C standard.
[Bug c++/83690] New: [8 regression] spurious unused variable warings for variables used only in static_assert
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83690 Bug ID: 83690 Summary: [8 regression] spurious unused variable warings for variables used only in static_assert Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: s...@li-snyder.org Target Milestone: --- As of gcc version 8.0.0 20180102 (experimental) (GCC) gcc gives an unused-but-set warning for variables that are used only in a static_assert. For example, with this source: --- x.cc - void foo() { constexpr bool foo = true; static_assert(foo, "foo"); } -- we get a warning: $ cc1plus -std=c++17 x.cc -quiet -Wall x.cc: In function ‘void foo()’: x.cc:3:18: warning: variable ‘foo’ set but not used [-Wunused-but-set-variable] constexpr bool foo = true; ^~~ We do not get this warning with gcc 7.2.1.
[Bug target/83691] New: Invalid gpr_reg_operand handling in powerpcspe port
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83691 Bug ID: 83691 Summary: Invalid gpr_reg_operand handling in powerpcspe port Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: rsandifo at gcc dot gnu.org Target Milestone: --- Target: powerpc-eabispe The powerpcspe adddi3 pattern takes gpr_reg_operands: (define_expand "add3" [(set (match_operand:SDI 0 "gpc_reg_operand" "") (plus:SDI (match_operand:SDI 1 "gpc_reg_operand" "") (match_operand:SDI 2 "reg_or_add_cint_operand" "")))] and splits the addition into two 32-bit instructions: rtx lo0 = gen_lowpart (SImode, operands[0]); rtx lo1 = gen_lowpart (SImode, operands[1]); rtx lo2 = gen_lowpart (SImode, operands[2]); rtx hi0 = gen_highpart (SImode, operands[0]); rtx hi1 = gen_highpart (SImode, operands[1]); rtx hi2 = gen_highpart_mode (SImode, DImode, operands[2]); if (!reg_or_short_operand (lo2, SImode)) lo2 = force_reg (SImode, lo2); if (!adde_operand (hi2, SImode)) hi2 = force_reg (SImode, hi2); emit_insn (gen_addsi3_carry (lo0, lo1, lo2)); emit_insn (gen_addsi3_carry_in (hi0, hi1, hi2)); However, gpr_reg_operand rejects subregs that satisfy invalid_e500_subreg: if ((TARGET_E500_DOUBLE || TARGET_SPE) && invalid_e500_subreg (op, mode)) return 0; and invalid_e500_subreg rejects subregs of vectors for SImode but not for DImode: if (TARGET_SPE && GET_CODE (op) == SUBREG && mode == SImode && REG_P (SUBREG_REG (op)) && SPE_VECTOR_MODE (GET_MODE (SUBREG_REG (op return true; This means that gpr_reg_operand accepts things for DImode that are invalid when split to SImode. An example of this is gcc.dg/vect/vect-singleton_1.c when compiled at -O3, where we get: error: unrecognizable insn: TEST (long long, int64x1_t, s64) ^~~~ (insn 10 9 11 2 (parallel [ (set (subreg:SI (reg:DI 163) 4) (plus:SI (subreg:SI (reg/v:V1DI 159 [ a ]) 4) (reg:SI 164))) (set (reg:SI 76 ca) (ltu:SI (plus:SI (subreg:SI (reg/v:V1DI 159 [ a ]) 4) (reg:SI 164)) (subreg:SI (reg/v:V1DI 159 [ a ]) 4))) ]) "../../../testsuite/gcc.dg/./vect/vect-singleton_1.c":28 -1 (nil)) during RTL pass: vregs This particular testcase started failing with r256209, but that really just exposed an existing problem.
[Bug target/81084] [8 Regression] powerpcspe port full of confusing configury / command-line options not related to SPE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81084 rsandifo at gcc dot gnu.org changed: What|Removed |Added CC||rsandifo at gcc dot gnu.org --- Comment #7 from rsandifo at gcc dot gnu.org --- If we do keep the port, PR83691 should be fixed by someone who can test it. I can write a candidate patch if the feeling is that I broke it with r256209, but it would mean changing a core pattern like adddi3, which really needs testing on a real target.
[Bug c++/81327] [8 Regression] cast to void* does not suppress -Wclass-memaccess
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81327 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org Target Milestone|--- |8.0 Summary|cast to void* does not |[8 Regression] cast to |suppress -Wclass-memaccess |void* does not suppress ||-Wclass-memaccess --- Comment #4 from Jakub Jelinek --- Because this warning is included in -Wall, this is a regression.
[Bug target/83507] [8 Regression] ICE in internal_dfa_insn_code_* for powerpc targets
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83507 --- Comment #3 from Arseny Solokha --- I've managed to generate a couple of additional testcases for this PR in December. Next week I'll check whether this ICE is still there w/ my setup.
[Bug fortran/83679] [6 regression] r256113 causes regression on pr77942.f90
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83679 kargl at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2018-01-04 CC||kargl at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from kargl at gcc dot gnu.org --- I have a patch that I'm testing.
[Bug fortran/83679] [6 regression] r256113 causes regression on pr77942.f90
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83679 kargl at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P4 Known to work||8.0 Version|8.0 |7.2.0 Assignee|unassigned at gcc dot gnu.org |kargl at gcc dot gnu.org Target Milestone|--- |7.2 Known to fail||7.2.1
[Bug fortran/83679] [6 regression] r256113 causes regression on pr77942.f90
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83679 kargl at gcc dot gnu.org changed: What|Removed |Added Target Milestone|7.2 |6.4 Known to fail||6.4.1
[Bug c/83688] Please check if buffers may overlap when copying strings using sprintf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83688 --- Comment #4 from Martin Sebor --- There is nothing to indicate that the first call to memcpy() in comment #0 overlaps so -Wrestrict doesn't warn for it. One thing to note is that the warning treats raw memory functions slightly differently than string functions because the former tend to be used to copy regions of the same array within itself, while string functions don't. So while the first memcpy call doesn't trigger a warning, if it were replaced with one to strncpy, GCC would warn: In file included from /usr/include/string.h:630, from d.c:3: pr83688.c: In function ‘test’: pr83688.c:11:5: warning: ‘__builtin_strncpy’ accessing 1 or more bytes at offsets 0 and 5 may overlap up to 9223372036854775802 bytes at offset [9223372036854775806, 5] [-Wrestrict] strncpy (buf, buf+5, strlen(buf+5)+1); ^~~ (The numbers it prints could stand to be improved.) Regarding -Wformat-overflow, it does (obviously) check for sprintf overflow. It doesn't check for overlap like in this call: sprintf (d + i, "%s", d); That's what the July 2017 patch added. In case of either warning, I don't think their quality would be improved by explicitly saying that overflow or overlap is undefined. Very few GCC warnings do, and I feel that describing the problem is more informative than saying that something undefined has happened. It would of course be possible to print a note after the warning saying that it's undefined. But I'd rather have the note include additional detail about the context of the problem than state (what should be) obvious.
[Bug fortran/83679] [6 regression] r256113 causes regression on pr77942.f90
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83679 --- Comment #2 from kargl at gcc dot gnu.org --- Author: kargl Date: Thu Jan 4 20:16:23 2018 New Revision: 256263 URL: https://gcc.gnu.org/viewcvs?rev=256263&root=gcc&view=rev Log: 2018-01-04 Steven G. Kargl PR Fortran/83679 * simplify.c (gfc_simplify_cshift): Restore early return for zero-sized array. Update Copyright year while here. Modified: branches/gcc-7-branch/gcc/fortran/ChangeLog branches/gcc-7-branch/gcc/fortran/simplify.c
[Bug fortran/83679] [6 regression] r256113 causes regression on pr77942.f90
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83679 --- Comment #3 from kargl at gcc dot gnu.org --- Author: kargl Date: Thu Jan 4 20:18:58 2018 New Revision: 256264 URL: https://gcc.gnu.org/viewcvs?rev=256264&root=gcc&view=rev Log: 2018-01-04 Steven G. Kargl PR Fortran/83679 * simplify.c (gfc_simplify_cshift): Restore early return for zero-sized array. Update Copyright year while here. Modified: branches/gcc-6-branch/gcc/fortran/ChangeLog branches/gcc-6-branch/gcc/fortran/simplify.c
[Bug c++/81327] [8 Regression] cast to void* does not suppress -Wclass-memaccess
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81327 --- Comment #5 from Martin Sebor --- I don't consider this a regression. The warnings are justified and it wasn't a design goal to let casts suppress them. I agree it would be useful for compatibility with Clang (that's why I raised the bug), but making it possible is an enhancement. Until it's implemented, the warnings can be selectively suppressed via GCC's diagnostic pragmas: void g (struct S *s) { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wclass-memaccess" __builtin_memset ((void*)s, 0, sizeof *s); #pragma GCC diagnostic pop }
[Bug fortran/83679] [6 regression] r256113 causes regression on pr77942.f90
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83679 kargl at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from kargl at gcc dot gnu.org --- Fixed on 6 and 7 branches. Regression does not occur on trunk. Thanks for the bug report.
[Bug c/83688] Please check if buffers may overlap when copying strings using sprintf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83688 --- Comment #5 from Daniel Fruzynski --- > There is nothing to indicate that the first call to memcpy() in comment #0 > overlaps so -Wrestrict doesn't warn for it. I thought that fix for bug 83373 will somehow help here. gcc could guess that memcpy will copy from 1 to 15 bytes, which may overlap destination. In fact this could help in all cases here except last memcpy.
[Bug fortran/83683] eoshift accepts wrong-length boundary
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83683 --- Comment #2 from Thomas Koenig --- Author: tkoenig Date: Thu Jan 4 21:04:23 2018 New Revision: 256265 URL: https://gcc.gnu.org/viewcvs?rev=256265&root=gcc&view=rev Log: 2018-01-04 Thomas Koenig PR fortran/83683 PR fortran/45689 * check.c (gfc_check_eoshift): Check for string length and for conformance of boundary. * intrinsic.c (add_functions): Add gfc_simplify_eoshift. * intrinsic.h: Add prototype for gfc_simplify_eoshift. * simplify.c (gfc_simplify_eoshift): New function. 2018-01-04 Thomas Koenig PR fortran/83683 PR fortran/45689 * gfortran.dg/eoshift_8.f90: New test. * gfortran.dg/simplify_eoshift_1.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/eoshift_8.f90 trunk/gcc/testsuite/gfortran.dg/simplify_eoshift_1.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/check.c trunk/gcc/fortran/intrinsic.c trunk/gcc/fortran/intrinsic.h trunk/gcc/fortran/simplify.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/45689] [F03] Missing transformational intrinsic in the trans_func_f2003 list
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45689 --- Comment #18 from Thomas Koenig --- Author: tkoenig Date: Thu Jan 4 21:04:23 2018 New Revision: 256265 URL: https://gcc.gnu.org/viewcvs?rev=256265&root=gcc&view=rev Log: 2018-01-04 Thomas Koenig PR fortran/83683 PR fortran/45689 * check.c (gfc_check_eoshift): Check for string length and for conformance of boundary. * intrinsic.c (add_functions): Add gfc_simplify_eoshift. * intrinsic.h: Add prototype for gfc_simplify_eoshift. * simplify.c (gfc_simplify_eoshift): New function. 2018-01-04 Thomas Koenig PR fortran/83683 PR fortran/45689 * gfortran.dg/eoshift_8.f90: New test. * gfortran.dg/simplify_eoshift_1.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/eoshift_8.f90 trunk/gcc/testsuite/gfortran.dg/simplify_eoshift_1.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/check.c trunk/gcc/fortran/intrinsic.c trunk/gcc/fortran/intrinsic.h trunk/gcc/fortran/simplify.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/30932] [meta-bug] fortran intrinsics
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30932 Bug 30932 depends on bug 45689, which changed state. Bug 45689 Summary: [F03] Missing transformational intrinsic in the trans_func_f2003 list https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45689 What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED
[Bug fortran/45689] [F03] Missing transformational intrinsic in the trans_func_f2003 list
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45689 Thomas Koenig changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #19 from Thomas Koenig --- Fixed on trunk, closing.
[Bug fortran/20585] [meta-bug] Fortran 2003 support
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=20585 Bug 20585 depends on bug 45689, which changed state. Bug 45689 Summary: [F03] Missing transformational intrinsic in the trans_func_f2003 list https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45689 What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED
[Bug fortran/31392] [meta-bug] gfortran problems with initialization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31392 Bug 31392 depends on bug 45689, which changed state. Bug 45689 Summary: [F03] Missing transformational intrinsic in the trans_func_f2003 list https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45689 What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED
[Bug fortran/83683] eoshift accepts wrong-length boundary
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83683 Thomas Koenig changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #3 from Thomas Koenig --- Fixed, closing.
[Bug c++/81327] [8 Regression] cast to void* does not suppress -Wclass-memaccess
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81327 --- Comment #6 from Ville Voutilainen --- As stated in the other comments, this breaks *users* of existing Qt versions. Any fix would apply to newer versions only. QVector bit-blasts an object of a type with a virtual table over an object of that same type, so it doesn't change the value of the vptr. It does a cast to void* to try and tell the compiler it knows what it's doing. I don't consider it feasible nor palatable to suggest said users to have to add warning pragmas everywhere they might include QVector. As far as the bit-blast goes, I plan to write a standard change proposal to make it well-defined. Please don't release GCC 8 without fixing this problem.
[Bug other/82352] [7 Regression] comdat-local function called by void h::i() outside its comdat
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82352 --- Comment #7 from Jakub Jelinek --- Author: jakub Date: Thu Jan 4 21:13:17 2018 New Revision: 256266 URL: https://gcc.gnu.org/viewcvs?rev=256266&root=gcc&view=rev Log: PR ipa/82352 * g++.dg/ipa/pr82352.C (size_t): Define to __SIZE_TYPE__ instead of long unsigned int. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/ipa/pr82352.C
[Bug middle-end/81897] [6/7/8 Regression] spurious -Wmaybe-uninitialized warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81897 --- Comment #10 from Aldy Hernandez --- Created attachment 43037 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43037&action=edit proposed UNTESTED patch Everything is so easy once Jeff does all the analysis :). As mentioned, there is no rhyme or reason to the seemingly random choice of starting the chain at the immediate dominator of the potentially uninitialized PHI argument. The ENTRY block seems like a saner solution, but alas compute_control_dep_chain() and friends can't handle computing dependency chains starting at the entry block. Once that is fixed, we have a shot at analyzing the dependency chain and calculating if anything invalidated it. At which point, my code was broken. I feel like I'm just echoing Jeff :). The attached UNTESTED patch fixes the PR, while surviving: make check-gcc RUNTESTFLAGS=dg.exp=uninit* I'll go through testing and post if I didn't break the world.
[Bug bootstrap/81926] [7 regression] go/parse.o differs between stage2 and stage3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81926 --- Comment #39 from Rainer Orth --- Author: ro Date: Thu Jan 4 21:47:35 2018 New Revision: 256267 URL: https://gcc.gnu.org/viewcvs?rev=256267&root=gcc&view=rev Log: Avoid Solaris/SPARC comparison failures with Solaris as (PR bootstrap/81926) PR bootstrap/81926 * cgraphunit.c (symbol_table::compile): Switch to text_section before calling assembly_start debug hook. * run-rtl-passes.c (run_rtl_passes): Likewise. Include output.h. Modified: trunk/gcc/ChangeLog trunk/gcc/cgraphunit.c trunk/gcc/run-rtl-passes.c