[Bug c++/83217] Compiler segfault: structured binding by reference to a templated type via a pointer
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83217 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from Jakub Jelinek --- Fixed for 7.3+.
[Bug tree-optimization/83198] [7 regression] ICE in format_floating, at gimple-ssa-sprintf.c:1900
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83198 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #6 from Jakub Jelinek --- Fixed for 7.3+.
[Bug c++/83205] ICE on structured binding with ill-formed negative std::tuple_size::value
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83205 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from Jakub Jelinek --- Fixed for 7.3+.
[Bug c++/81197] [7 Regression] ICE with structured binding and lifetime-extended temporaries
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81197 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #7 from Jakub Jelinek --- Fixed for 7.3+.
[Bug tree-optimization/83269] [6 Regression] Wrong constant folding
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83269 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression] Wrong |[6 Regression] Wrong |constant folding|constant folding --- Comment #10 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug c++/79650] [6 Regression] ICE on invalid c++ code with label arithmetic in convert_nontype_argument (pt.c:6515)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79650 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression] ICE on |[6 Regression] ICE on |invalid c++ code with label |invalid c++ code with label |arithmetic in |arithmetic in |convert_nontype_argument|convert_nontype_argument |(pt.c:6515) |(pt.c:6515) --- Comment #10 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug tree-optimization/80631] [6 Regression] Compiling with -O3 -mavx2 gives wrong code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80631 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression] Compiling |[6 Regression] Compiling |with -O3 -mavx2 gives wrong |with -O3 -mavx2 gives wrong |code|code --- Comment #11 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug target/81906] [7 Regression] Calls to rint() wrongly optimized away starting in g++ 6
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81906 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #17 from Jakub Jelinek --- Fixed for 7.3+.
[Bug c++/80259] [6 Regression] ICE deleting friend function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80259 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression] ICE|[6 Regression] ICE deleting |deleting friend function|friend function --- Comment #8 from Jakub Jelinek --- Fixed for 7.3+.
[Bug sanitizer/81212] [6 Regression] -Wreturn-type is disabled when used together with -fsanitize=return
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81212 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression]|[6 Regression] |-Wreturn-type is disabled |-Wreturn-type is disabled |when used together with |when used together with |-fsanitize=return |-fsanitize=return --- Comment #6 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug target/78643] [6 Regression] ICE in convert_move, at expr.c:230
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78643 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression] ICE in |[6 Regression] ICE in |convert_move, at expr.c:230 |convert_move, at expr.c:230 --- Comment #9 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug target/80583] [6 Regression] ICE with target attribute and vectorized float: internal compiler error: in convert_move, at expr.c:270
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80583 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression] ICE with |[6 Regression] ICE with |target attribute and|target attribute and |vectorized float: internal |vectorized float: internal |compiler error: in |compiler error: in |convert_move, at expr.c:270 |convert_move, at expr.c:270 --- Comment #11 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug c++/81675] [6 Regression] attribute(noreturn) of destructor in :? not honored
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81675 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression]|[6 Regression] |attribute(noreturn) of |attribute(noreturn) of |destructor in :? not|destructor in :? not |honored |honored --- Comment #5 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug c++/81888] [7 Regression] Structured bindings stopped working
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81888 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #7 from Jakub Jelinek --- Fixed for 7.3+.
[Bug target/80819] [6 regression] Useless store to the stack in _mm_set_epi64x with SSE4 -mno-avx
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80819 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 regression] Useless|[6 regression] Useless |store to the stack in |store to the stack in |_mm_set_epi64x with SSE4|_mm_set_epi64x with SSE4 |-mno-avx|-mno-avx --- Comment #14 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug fortran/81841] [6 Regression] THREADPRIVATE (OpenMP) wrongly rejected in BLOCK DATA
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81841 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression]|[6 Regression] |THREADPRIVATE (OpenMP) |THREADPRIVATE (OpenMP) |wrongly rejected in BLOCK |wrongly rejected in BLOCK |DATA|DATA --- Comment #17 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug fortran/81304] [6 Regression] Bogus warning with -Wsurprising and -fopenmp: Type specified for intrinsic function 'min' / 'max'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81304 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression] Bogus |[6 Regression] Bogus |warning with -Wsurprising |warning with -Wsurprising |and -fopenmp: Type |and -fopenmp: Type |specified for intrinsic |specified for intrinsic |function 'min' / 'max' |function 'min' / 'max' --- Comment #8 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug sanitizer/83014] ICE in pretty-print with -fsanitize=bounds
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83014 --- Comment #11 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug rtl-optimization/81553] [7 Regression] ICE in immed_wide_int_const, at emit-rtl.c:607
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81553 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #6 from Jakub Jelinek --- Fixed for 7.3+.
[Bug middle-end/82253] [6 Regression] ICE in convert_move, at expr.c:604
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82253 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression] ICE in |[6 Regression] ICE in |convert_move, at expr.c:604 |convert_move, at expr.c:604 --- Comment #7 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug debug/83084] [7 Regression] -fcompare-debug failure on ppc64le
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83084 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #9 from Jakub Jelinek --- Fixed for 7.3+.
[Bug c++/82781] [6 Regression] Vector extension operators return wrong result in constexpr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82781 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression] Vector |[6 Regression] Vector |extension operators return |extension operators return |wrong result in constexpr |wrong result in constexpr --- Comment #7 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug c++/83059] ICE on invalid C++ code: in tree_to_uhwi, at tree.c:6633
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83059 --- Comment #5 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug target/82880] [6 Regression] gcc --help=target --help=optimizers hangs on mips
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82880 Jakub Jelinek changed: What|Removed |Added Summary|[6/7 Regression] gcc|[6 Regression] gcc |--help=target |--help=target |--help=optimizers hangs on |--help=optimizers hangs on |mips|mips --- Comment #6 from Jakub Jelinek --- Fixed for 7.3+ too.
[Bug lto/83338] [8 Regression] SPEC CPU2017 510.parest_r ICE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83338 Marc Glisse changed: What|Removed |Added Status|WAITING |RESOLVED Resolution|--- |FIXED --- Comment #14 from Marc Glisse --- Fixed according to #c13.
[Bug middle-end/81914] [7/8 Regression] gcc 7.1 generates branch for code which was branchless in earlier gcc version
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81914 --- Comment #10 from Marc Glisse --- For the particular case of <=> (-1, 0 or 1), I've seen code like (a>b)-(a
[Bug driver/32528] -save-temps when compiling standard input fails
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32528 --- Comment #9 from Eric Gallager --- (In reply to Paolo Bonzini from comment #7) > re. comment #5, like this? > > Index: gcc.c > === > --- gcc.c (revision 128902) > +++ gcc.c (working copy) > @@ -4685,6 +4685,8 @@ do_spec_1 (const char *spec, int inswitc > fatal ("spec '%s' invalid", spec); > > case 'b': > + if (!IS_ABSOLUTE_PATH (input_basename[0]) && input_basename[0] == > '-') > + obstack_grow (&obstack, "./", 2); > obstack_grow (&obstack, input_basename, basename_length); > arg_going = 1; > break; > > Anybody wants to bootstrap/test/regtest this? > Paolo Try sending it to the gcc-patches to see if anyone can test it. I'd try the patch myself, but bootstrap is currently broken for me.
[Bug target/80885] Do not use the opaque _mm256_cmp_ps to produce -1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80885 --- Comment #2 from Marc Glisse --- https://gcc.gnu.org/ml/gcc-patches/2017-11/msg02233.html
[Bug tree-optimization/80958] [8 regression] gcc.target/i386/pr70021.c FAILs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80958 Jeffrey A. Law changed: What|Removed |Added Status|NEW |RESOLVED CC||law at redhat dot com Resolution|--- |FIXED --- Comment #3 from Jeffrey A. Law --- This was fixed on the trunk by Jan back in Oct: commit 4b57298d4731a37c50ab145bc766a926a98cebf0 Author: hubicka Date: Fri Oct 27 12:36:28 2017 + * gcc.target/i386/pr70021.c: Add -mtune=skylake.
[Bug rtl-optimization/82849] [8 Regression] ICE on valid code since r254379
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82849 Jeffrey A. Law changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||law at redhat dot com Resolution|--- |FIXED --- Comment #5 from Jeffrey A. Law --- I went ahead and committed Jan's patch to the trunk.
[Bug rtl-optimization/82849] [8 Regression] ICE on valid code since r254379
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82849 --- Comment #6 from Jeffrey A. Law --- Author: law Date: Sat Dec 16 16:01:26 2017 New Revision: 255748 URL: https://gcc.gnu.org/viewcvs?rev=255748&root=gcc&view=rev Log: 2017-12-16 Jan Hubicka PR rtl-optimization/82849 * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int and get_max_loop_iterations_int. Modified: trunk/gcc/ChangeLog trunk/gcc/modulo-sched.c
[Bug rtl-optimization/83424] [8 Regression] wrong code with -O -fno-tree-ccp -fno-tree-coalesce-vars
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83424 Segher Boessenkool changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |segher at gcc dot gnu.org --- Comment #2 from Segher Boessenkool --- Mine.
[Bug tree-optimization/83055] [8 Regression] ICE in operator>, at profile-count.h:834
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83055 Jeffrey A. Law changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2017-12-16 CC||law at redhat dot com Ever confirmed|0 |1 --- Comment #2 from Jeffrey A. Law --- Still happens on the trunk r255606.
[Bug target/82767] [8 regression] gcc.target/i386/pr71321.c scan-assembler-times fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82767 --- Comment #5 from Jeffrey A. Law --- Author: law Date: Sat Dec 16 16:21:23 2017 New Revision: 255749 URL: https://gcc.gnu.org/viewcvs?rev=255749&root=gcc&view=rev Log: PR testsuite/82767 * gcc.target/i386/pr71321.c: Test with -mtune=generic Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/i386/pr71321.c
[Bug target/82767] [8 regression] gcc.target/i386/pr71321.c scan-assembler-times fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82767 Jeffrey A. Law changed: What|Removed |Added Status|NEW |RESOLVED CC||law at redhat dot com Resolution|--- |FIXED --- Comment #6 from Jeffrey A. Law --- Markus has retuned the div/mod costing model and I've committed Sebastian's change to use -mtune=generic on this test.
[Bug ipa/82278] [8 regression] gcc.dg/lto/chkp-ctor-merge fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82278 Jeffrey A. Law changed: What|Removed |Added Priority|P3 |P4 CC||law at redhat dot com --- Comment #4 from Jeffrey A. Law --- MPX/CHKP is likely to be deprecated. Moving to P4.
[Bug target/81362] [8 regression] FAIL: gcc.dg/vect/no-vfa-vect-57.c execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81362 Jeffrey A. Law changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||law at redhat dot com Resolution|--- |FIXED --- Comment #9 from Jeffrey A. Law --- This was fixed back in July: commit f0f5171608d68c3cb3aa6aa43d64814d4f9d67d5 Author: krebbel Date: Tue Jul 18 09:23:35 2017 + Fix PR81362: Vector peeling npeel was erroneously overwritten by vect_peeling_hash_get_lowest_cost although the corresponding dataref is not used afterwards. It should be safe to get rid of the npeel parameter since we use the returned peeling_info's npeel anyway. Also removed the body_cost_vec parameter which is not used elsewhere. gcc/ChangeLog: 2017-07-18 Robin Dapp * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove body_cost_vec from _vect_peel_extended_info. (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec. (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and npeel.
[Bug target/83330] [7/8 Regression] generating unaligned store to stack for SSE register with -mno-push-args
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83330 H.J. Lu changed: What|Removed |Added CC||hjl.tools at gmail dot com --- Comment #2 from H.J. Lu --- Add -mno-stv fixes the crash.
[Bug c++/83441] New: Null this captured in lambda in class variable initializer for templated classes
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83441 Bug ID: 83441 Summary: Null this captured in lambda in class variable initializer for templated classes Product: gcc Version: 7.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: alextenbrink at gmail dot com Target Milestone: --- Created attachment 42896 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42896&action=edit Preprocessed compilation result on example The following code prints '0', signifying that the capture 'this' pointer is null: #include #include template struct X { std::function f{[this]{ std::cout << (void*)this << "\n"; }}; }; int main() { X x; x.f(); return 0; } Removing the template parameter of the class, or moving the initializer to a constructor makes the program print a nonzero value, for example: #include #include template struct X { X() : f{[this]{ std::cout << (void*) this << "\n"; }}{} std::function f; }; int main() { X x; x.f(); return 0; } My expected behaviour is that the 'this' pointer is not null. It looks like this problem repos in previous versions of GCC - if I try this code in an online compiler, I even get internal compiler errors on some sites. Version and command information (I'm using a locally compiled gcc 7.2): /usr/local/bin/g++ -v -save-temps -Wall -Wextra -fno-strict-aliasing -fwrapv -fno-aggressive-loop-optimizations -fsanitize=undefined bug.cpp && ./a.out Using built-in specs. COLLECT_GCC=/usr/local/bin/g++ COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.2.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-7.2.0/configure --enable-languages=c++ --disable-multilib Thread model: posix gcc version 7.2.0 (GCC) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-fno-strict-aliasing' '-fwrapv' '-fno-aggressive-loop-optimizations' '-fsanitize=undefined' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.2.0/cc1plus -E -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE bug.cpp -mtune=generic -march=x86-64 -Wall -Wextra -fno-strict-aliasing -fwrapv -fno-aggressive-loop-optimizations -fsanitize=undefined -fpch-preprocess -o bug.ii COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-fno-strict-aliasing' '-fwrapv' '-fno-aggressive-loop-optimizations' '-fsanitize=undefined' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.2.0/cc1plus -fpreprocessed bug.ii -quiet -dumpbase bug.cpp -mtune=generic -march=x86-64 -auxbase bug -Wall -Wextra -version -fno-strict-aliasing -fwrapv -fno-aggressive-loop-optimizations -fsanitize=undefined -o bug.s GNU C++14 (GCC) version 7.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 7.2.0, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C++14 (GCC) version 7.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 7.2.0, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: c1b49aafb451e1f859453c52dc4e5f71 COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-fno-strict-aliasing' '-fwrapv' '-fno-aggressive-loop-optimizations' '-fsanitize=undefined' '-shared-libgcc' '-mtune=generic' '-march=x86-64' as -v --64 -o bug.o bug.s GNU assembler version 2.26.1 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.26.1 COMPILER_PATH=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.2.0/:/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.2.0/:/usr/local/libexec/gcc/x86_64-pc-linux-gnu/:/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.2.0/:/usr/local/lib/gcc/x86_64-pc-linux-gnu/ LIBRARY_PATH=/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.2.0/:/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../lib64/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-linux-gnu/:/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.2.0/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-fno-strict-aliasing' '-fwrapv' '-fno-aggressive-loop-optimizations' '-fsanitize=undefined' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.2.0/collect2 -plugin /usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.2.0/liblto_plugin.so -plugin-opt=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.2.0/lto-wrapper -plugin-opt=-fresolution=bug.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/local/lib/gcc/x86_64-pc-
[Bug target/83330] [7/8 Regression] generating unaligned store to stack for SSE register with -mno-push-args
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83330 H.J. Lu changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2017-12-16 Ever confirmed|0 |1 --- Comment #3 from H.J. Lu --- RTL expand is correct: ;; _2 = bar (0, 0, 0, 0, 0); (insn 6 5 7 (parallel [ (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 7 sp) (const_int -16 [0xfff0]))) (clobber (reg:CC 17 flags)) ]) "x.i":17 -1 (expr_list:REG_ARGS_SIZE (const_int 16 [0x10]) (nil))) (insn 7 6 8 (set (reg:DI 90) (reg/f:DI 84 virtual-outgoing-args)) "x.i":17 -1 (nil)) (insn 8 7 9 (set (reg:DI 91) (const_int 0 [0])) "x.i":17 -1 (nil)) (insn 9 8 10 (set (reg:DI 92) (const_int 0 [0])) "x.i":17 -1 (nil)) (insn 10 9 11 (set (mem:TI (reg:DI 90) [0 S16 A128]) (const_int 0 [0])) "x.i":17 -1 (nil)) But vregs generates: (insn 5 2 6 2 (set (reg:DI 87 [ v.0_1 ]) (mem/c:DI (symbol_ref:DI ("v") [flags 0x2] ) [1 v+0 S8 A64])) "x.i":17 85 {*movdi_internal} (nil)) (insn 6 5 7 2 (parallel [ (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 7 sp) (const_int -16 [0xfff0]))) (clobber (reg:CC 17 flags)) ]) "x.i":17 222 {*adddi_1} (expr_list:REG_ARGS_SIZE (const_int 16 [0x10]) (nil))) (insn 7 6 8 2 (set (reg:DI 90) (reg/f:DI 7 sp)) "x.i":17 85 {*movdi_internal} (nil)) (insn 8 7 9 2 (set (reg:DI 91) (const_int 0 [0])) "x.i":17 85 {*movdi_internal} (nil)) (insn 9 8 10 2 (set (reg:DI 92) (const_int 0 [0])) "x.i":17 85 {*movdi_internal} (nil)) (insn 10 9 11 2 (set (mem:TI (reg:DI 90) [0 S16 A128]) The alignment is wrong. (const_int 0 [0])) "x.i":17 84 {*movti_internal} (nil))
[Bug libstdc++/83279] std::experimental::filesystem::copy_file can't copy larger files than 2.0GiB
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83279 --- Comment #12 from T B --- Thanks! However, if I understand your code right, you simply fixed the error code, right? So that it is still not possible to copy files larger than 2GiB. Wouldn't it be possible to create a loop in which in each run 2GiB will be copied until (count == n)? To be honest, streams are not my core competence. How is this issue solved in GCC 5.4?
[Bug tree-optimization/82860] [8 regression] gcc.dg/vect/pr79347.c FAILs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82860 Jeffrey A. Law changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||law at redhat dot com Resolution|--- |DUPLICATE --- Comment #1 from Jeffrey A. Law --- ALmost certainly a DUP. *** This bug has been marked as a duplicate of bug 82965 ***
[Bug other/82965] [8 regression][armeb] gcc.dg/vect/pr79347.c starts failing after r254379
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82965 Jeffrey A. Law changed: What|Removed |Added CC||ro at gcc dot gnu.org --- Comment #1 from Jeffrey A. Law --- *** Bug 82860 has been marked as a duplicate of this bug. ***
[Bug plugins/83442] New: FAIL: gcc.dg/plugin/expensive-selftests-1.c -- timeout
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83442 Bug ID: 83442 Summary: FAIL: gcc.dg/plugin/expensive-selftests-1.c -- timeout Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: plugins Assignee: unassigned at gcc dot gnu.org Reporter: danglin at gcc dot gnu.org Target Milestone: --- Host: hppa-unknown-linux-gnu Target: hppa-unknown-linux-gnu Build: hppa-unknown-linux-gnu Test times out: spawn -ignore SIGHUP /home/dave/gnu/gcc/objdir/gcc/xgcc -B/home/dave/gnu/gcc/obj dir/gcc/ /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/plugin/expensive-selftests- 1.c -fno-diagnostics-show-caret -fdiagnostics-color=never -fplugin=./expensive_s elftests_plugin.so -ansi -pedantic-errors -S -o expensive-selftests-1.s WARNING: program timed out compiler exited with status 1 FAIL: gcc.dg/plugin/expensive-selftests-1.c -fplugin=./expensive_selftests_plugi n.so dg-regexp 3 not found: "expensive_selftests_plugin: .* pass\(es\) in .* se conds" FAIL: gcc.dg/plugin/expensive-selftests-1.c -fplugin=./expensive_selftests_plugi n.so (test for excess errors) Excess errors: exit status is 1
[Bug c/83443] New: FAIL: gcc.dg/tree-ssa/builtin-sprintf-warn-18.c (test for warnings, line 119)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83443 Bug ID: 83443 Summary: FAIL: gcc.dg/tree-ssa/builtin-sprintf-warn-18.c (test for warnings, line 119) Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: danglin at gcc dot gnu.org Target Milestone: --- Host: hppa-unknown-linux-gnu Target: hppa-unknown-linux-gnu Build: hppa-unknown-linux-gnu Executing on host: /home/dave/gnu/gcc/objdir/gcc/xgcc -B/home/dave/gnu/gcc/objdir/gcc/ /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c -fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -Wall -Wno-format -Wformat-overflow -fexec-charset=IBM1047 -ftrack-macro-expansion=0 -S -o builtin-sprintf-warn-18.s(timeout = 300) spawn -ignore SIGHUP /home/dave/gnu/gcc/objdir/gcc/xgcc -B/home/dave/gnu/gcc/objdir/gcc/ /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c -fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -Wall -Wno-format -Wformat-overflow -fexec-charset=IBM1047 -ftrack-macro-expansion=0 -S -o builtin-sprintf-warn-18.s /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: In function 'test_characters': /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:16:3: warning: '%%' directive writing 1 byte into a region of size 0 [-Wformat-overflow=] /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:16:3: note: '__builtin_sprintf' output 2 bytes into a destination of size 0 /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:18:3: warning: '%A' directive writing between 6 and 20 bytes into a region of size 0 [-Wformat-overflow=] /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:18:3: note: '__builtin_sprintf' output between 7 and 21 bytes into a destination of size 0 /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:19:3: warning: '%a' directive writing between 6 and 20 bytes into a region of size 0 [-Wformat-overflow=] /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:19:3: note: '__builtin_sprintf' output between 7 and 21 bytes into a destination of size 0 /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:22:3: warning: '%c' directive writing 1 byte into a region of size 0 [-Wformat-overflow=] /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:22:3: note: '__builtin_sprintf' output 2 bytes into a destination of size 0 /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:24:3: warning: '%d' directive writing 2 bytes into a region of size 0 [-Wformat-overflow=] /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:24:3: note: '__builtin_sprintf' output 3 bytes into a destination of size 0 /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:25:3: warning: '% d' directive writing 3 bytes into a region of size 0 [-Wformat-overflow=] /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:25:3: note: '__builtin_sprintf' output 4 bytes into a destination of size 0 /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:26:3: warning: '%-d' directive writing 3 bytes into a region of size 0 [-Wformat-overflow=] /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:26:3: note: '__builtin_sprintf' output 4 bytes into a destination of size 0 /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:27:3: warning: '%+d' directive writing 5 bytes into a region of size 0 [-Wformat-overflow=] /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:27:3: note: '__builtin_sprintf' output 6 bytes into a destination of size 0 /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:29:3: warning: '%1$d' directive writing 4 bytes into a region of size 0 [-Wformat-overflow=] /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:29:3: note: '__builtin_sprintf' output 5 bytes into a destination of size 0 /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:32:3: warning: '%0d' directive writing 5 bytes into a region of size 0 [-Wformat-overflow=] /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:32:3: note: '__builtin_sprintf' output 6 bytes into a destination of size 0 /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:33:3: warning: '%1d' directive writing 5 bytes into a region of size 0 [-Wformat-overflow=] /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:33:3: note: '__
[Bug target/83330] [7/8 Regression] generating unaligned store to stack for SSE register with -mno-push-args
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83330 --- Comment #4 from H.J. Lu --- call expand is wrong: (insn 6 5 7 2 (parallel [ (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 7 sp) (const_int -16 [0xfff0]))) (clobber (reg:CC 17 flags)) ]) "x.i":17 222 {*adddi_1} (expr_list:REG_ARGS_SIZE (const_int 16 [0x10]) (nil))) doesn't count the alignment requirement later for (insn 10 9 11 (set (mem:TI (reg:DI 90) [0 S16 A128]) (const_int 0 [0])) "x.i":17 -1 (nil))
[Bug libfortran/81937] stack-buffer-overflow on memcpy in libgfortran/io/unix.c on character(kind=4)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81937 --- Comment #4 from Jerry DeLisle --- Author: jvdelisle Date: Sat Dec 16 19:50:42 2017 New Revision: 255750 URL: https://gcc.gnu.org/viewcvs?rev=255750&root=gcc&view=rev Log: 2017-12-16 Jerry DeLisle PR libgfortran/81937 * io/list_read.c (next_char_internal): Don't attempt to read from the internal unit stream if no bytes are left. Decrement bytes_left in the right place. Modified: trunk/libgfortran/ChangeLog trunk/libgfortran/io/list_read.c
[Bug libfortran/78549] Very slow formatted internal file output
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78549 --- Comment #32 from Jerry DeLisle --- Author: jvdelisle Date: Sat Dec 16 19:59:14 2017 New Revision: 255751 URL: https://gcc.gnu.org/viewcvs?rev=255751&root=gcc&view=rev Log: 2017-12-16 Jerry DeLisle Backport from trunk PR libgfortran/78549 * io/inquire.c (inquire_via_unit): Adjust test for existence for pre-connected internal units. * io/transfer.c (finalize_transfer): When done with a transfer to internal units, free the format buffer and close the stream. (st_read_done): Delete freeing the stream, now handled using sclose in finalize_transfer. (st_write_done): Likewise. * io/unit.c (get_unit): Return NULL for special reserved unit numbers, signifying not accessible to the user. (init_units): Insert the two special internal units into the unit treap. This makes these unit structures available without further allocations for later use by internal unit I/O. These units are automatically deleted by normal program termination. * io/unix.c (mem_close): Add a guard check to protect from double free. Modified: branches/gcc-7-branch/libgfortran/ChangeLog branches/gcc-7-branch/libgfortran/io/inquire.c branches/gcc-7-branch/libgfortran/io/transfer.c branches/gcc-7-branch/libgfortran/io/unit.c branches/gcc-7-branch/libgfortran/io/unix.c
[Bug target/83330] [7/8 Regression] generating unaligned store to stack for SSE register with -mno-push-args
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83330 --- Comment #5 from H.J. Lu --- call expand is OK. pro_and_epilogue doesn't adjust outgoing stack to properly align stack for (insn 27 10 17 2 (set (mem:V1TI (reg/f:DI 7 sp) [0 S16 A128]) (reg:V1TI 21 xmm0 [95])) "x.i":17 1258 {movv1ti_internal} (nil)) since ud_dce removes the call to bar.
[Bug libstdc++/83279] std::experimental::filesystem::copy_file can't copy larger files than 2.0GiB
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83279 --- Comment #13 from Jonathan Wakely --- No, I didn't just fix the error code, the code will copy files larger than 2G now. I assume your 5.4 build doesn't use sendfile, so doesn't have the 2G limitation of sendfile.
[Bug tree-optimization/83444] New: [5/6/7/8 Regression] missing strlen optimization on a member array of a local struct
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83444 Bug ID: 83444 Summary: [5/6/7/8 Regression] missing strlen optimization on a member array of a local struct Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: msebor at gcc dot gnu.org Target Milestone: --- GCC 4.9 is the last release to transform both of the functions below into a no-op. Starting with 5.1, only the first function is so optimized while the second is not. $ cat z.c && gcc -O2 -S -Warray-bounds=2 -fdump-tree-optimized=/dev/stdout z.c void f (void) { char a[5] = "012"; __builtin_strcpy (a, "");// folded into *a = 0 if (__builtin_strlen (a) != 0) // folded into false __builtin_abort ();// eliminated } void g (void) { char a[5] = "012"; char b[7] = ""; __builtin_strcpy (a, b); // folded into *a = 0 if (__builtin_strlen (a) != 0) // not folded __builtin_abort ();// not eliminated } ;; Function f (f, funcdef_no=0, decl_uid=1892, cgraph_uid=0, symbol_order=0) f (int i) { [local count: 1073741825]: return; } ;; Function g (g, funcdef_no=1, decl_uid=1896, cgraph_uid=1, symbol_order=1) g (int i) { char b[7]; char a[5]; char _1; unsigned char _9; [local count: 1073741825]: a = "012"; b = ""; _9 = MEM[(char * {ref-all})&b]; MEM[(char * {ref-all})&a] = _9; _1 = MEM[(const char *)&a]; if (_1 != 0) goto ; [0.00%] else goto ; [99.96%] [count: 0]: __builtin_abort (); [local count: 1073312327]: a ={v} {CLOBBER}; b ={v} {CLOBBER}; return; }
[Bug tree-optimization/83444] [5/6/7/8 Regression] missing strlen optimization on a member array of a local struct
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83444 --- Comment #1 from Martin Sebor --- The first revision that fails to eliminate the abort is r216728, though from the patch is sounds like the underlying cause might be a limitation in the strlen pass. 2014-10-27 Richard Biener * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h. (lattice): New global. (fwprop_ssa_val): New function. (fold_all_stmts): Likewise. (pass_forwprop::execute): Finally fold all stmts. * gcc.dg/tree-ssa/forwprop-6.c: Scan ccp1 dump instead. * gcc.dg/strlenopt-8.c: Adjust and XFAIL for non_strict_align target due to memcpy inline-expansion.
[Bug libfortran/81937] stack-buffer-overflow on memcpy in libgfortran/io/unix.c on character(kind=4)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81937 --- Comment #5 from Jerry DeLisle --- Author: jvdelisle Date: Sat Dec 16 21:57:17 2017 New Revision: 255752 URL: https://gcc.gnu.org/viewcvs?rev=255752&root=gcc&view=rev Log: 2017-12-16 Jerry DeLisle Backport from trunk PR libgfortran/81937 * io/list_read.c (next_char_internal): Don't attempt to read from the internal unit stream if no bytes are left. Decrement bytes_left in the right place. Modified: branches/gcc-7-branch/libgfortran/ChangeLog branches/gcc-7-branch/libgfortran/io/list_read.c
[Bug go/83308] Missing platform definitions for SH in libgo
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83308 --- Comment #13 from John Paul Adrian Glaubitz --- Cacheline size is 32 bytes according to the documentation: > www.st.com/resource/en/user_manual/cd00147165.pdf (page 75) PC quantum should be 2 bytes as SH uses a 16-bit instruction encoding. No idea about GOARCH_MINFRAMESIZE though. Patch submitted here: https://gcc.gnu.org/ml/gcc-patches/2017-12/msg0.html
[Bug middle-end/83239] False positive from -Wstringop-overflow on simple std::vector code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83239 --- Comment #15 from Martin Sebor --- Author: msebor Date: Sat Dec 16 22:37:22 2017 New Revision: 255753 URL: https://gcc.gnu.org/viewcvs?rev=255753&root=gcc&view=rev Log: PR tree-optimization/83239 - False positive from -Wstringop-overflow on simple std::vector code libstdc++/CHangeLog: * include/bits/vector.tcc (vector::_M_default_append): Assert invariant to generate better code. gcc/testsuite/ChangeLog: * g++.dg/pr83239.C: New test case. Added: trunk/gcc/testsuite/g++.dg/pr83239.C Modified: trunk/gcc/testsuite/ChangeLog trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/vector.tcc
[Bug middle-end/83239] False positive from -Wstringop-overflow on simple std::vector code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83239 --- Comment #16 from Martin Sebor --- With the libstdc++ patch committed in r255753 the warning is no longer issued. Jeff, do you want to keep this open as a reminder to look into the ideas in comment #12 and later?
[Bug libfortran/81937] stack-buffer-overflow on memcpy in libgfortran/io/unix.c on character(kind=4)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81937 --- Comment #6 from Jerry DeLisle --- Author: jvdelisle Date: Sat Dec 16 22:41:13 2017 New Revision: 255754 URL: https://gcc.gnu.org/viewcvs?rev=255754&root=gcc&view=rev Log: 2017-12-16 Jerry DeLisle Backport from trunk PR libgfortran/81937 * io/list_read.c (next_char_internal): Don't attempt to read from the internal unit stream if no bytes are left. Decrement bytes_left in the right place. Modified: branches/gcc-6-branch/libgfortran/ChangeLog branches/gcc-6-branch/libgfortran/io/list_read.c
[Bug libfortran/81937] stack-buffer-overflow on memcpy in libgfortran/io/unix.c on character(kind=4)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81937 Jerry DeLisle changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #7 from Jerry DeLisle --- Fixed on 6, 7, and 8 closing
[Bug tree-optimization/80641] missed optimization with with std::vector resize in loop
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80641 Martin Sebor changed: What|Removed |Added Keywords|diagnostic | Summary|[7/8 Regression] Warning|missed optimization with |with std::vector resize in |with std::vector resize in |loop|loop --- Comment #8 from Martin Sebor --- With the libstdc++ patch committed in r255753 the warning is no longer issued. Pursuant to Jeff's comment #7 I've removed the regression marker and retitled the bug. To reproduce the missing optimization (and the warning) the libstdc++ patch needs to be reverted.
[Bug c++/83445] New: conversion function has too high priority in overload resolution
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83445 Bug ID: 83445 Summary: conversion function has too high priority in overload resolution Product: gcc Version: 7.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: omawarisan.bokudesu at live dot jp Target Milestone: --- In the following program, overload resolution in the direct-initialization of `target` from `source` (in the main function) should select `Target(Source const&)` directly, but gcc 7.2.0 and trunk with -std=c++17 uses `Source::operator Target()` . I believe the former should be selected because a standard conversion sequence is always better than a user-defined conversion sequence. command: g++ test.cpp -std=c++17 -pedantic test.cpp expected behavior: prints "OK" actual behavior: prints "Bad" #include struct Source; struct Target { Target() = default; Target(Source const&){ std::printf("OK\n"); value = 0; } int value = -1; }; struct Source { operator Target(){ std::printf("Bad\n"); Target target; target.value = 1; return target; } }; int main() { Source source; Target target{source}; std::printf("v = %d\n", target.value); } Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/data2/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/8.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /data2/gcc-trunk/gcc/configure --prefix=/data2/gcc-trunk --enable-languages=c,c++ --disable-multilib Thread model: posix gcc version 8.0.0 20171215 (experimental) (GCC)
[Bug libstdc++/83279] std::experimental::filesystem::copy_file can't copy larger files than 2.0GiB
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83279 --- Comment #14 from T B --- Then I have to reread the code, thank you. I will mark this topic as resolved.
[Bug libstdc++/83279] std::experimental::filesystem::copy_file can't copy larger files than 2.0GiB
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83279 T B changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #15 from T B --- Issue fixed.
[Bug middle-end/78918] missing -Wrestrict on memcpy copying over self
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78918 --- Comment #5 from Martin Sebor --- Author: msebor Date: Sat Dec 16 23:58:34 2017 New Revision: 255755 URL: https://gcc.gnu.org/viewcvs?rev=255755&root=gcc&view=rev Log: PR tree-optimization/78918 - missing -Wrestrict on memcpy copying over self gcc/c-family/ChangeLog: PR tree-optimization/78918 * c-common.c (check_function_restrict): Avoid checking built-ins. * c.opt (-Wrestrict): Include in -Wall. gcc/ChangeLog: PR tree-optimization/78918 * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o. * builtins.c (check_sizes): Rename... (check_access): ...to this. Rename function arguments for clarity. (check_memop_sizes): Adjust names. (expand_builtin_memchr, expand_builtin_memcpy): Same. (expand_builtin_memmove, expand_builtin_mempcpy): Same. (expand_builtin_strcat, expand_builtin_stpncpy): Same. (check_strncat_sizes, expand_builtin_strncat): Same. (expand_builtin_strncpy, expand_builtin_memset): Same. (expand_builtin_bzero, expand_builtin_memcmp): Same. (expand_builtin_memory_chk, maybe_emit_chk_warning): Same. (maybe_emit_sprintf_chk_warning): Same. (expand_builtin_strcpy): Adjust. (expand_builtin_stpcpy): Same. (expand_builtin_with_bounds): Detect out-of-bounds accesses in pointer-checking forms of memcpy, memmove, and mempcpy. (gcall_to_tree_minimal, max_object_size): Define new functions. * builtins.h (max_object_size): Declare. * calls.c (alloc_max_size): Call max_object_size instead of hardcoding ssizetype limit. (get_size_range): Handle new argument. * calls.h (get_size_range): Add a new argument. * cfgexpand.c (expand_call_stmt): Propagate no-warning bit. * doc/invoke.texi (-Wrestrict): Adjust, add example. * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping operations. (gimple_fold_builtin_memory_chk): Same. (gimple_fold_builtin_stxcpy_chk): New function. * gimple-ssa-warn-restrict.c: New source. * gimple-ssa-warn-restrict.h: New header. * gimple.c (gimple_build_call_from_tree): Propagate location. * passes.def (pass_warn_restrict): Add new pass. * tree-pass.h (make_pass_warn_restrict): Declare. * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping operations. (handle_builtin_strcat): Same. (strlen_optimize_stmt): Rename... (strlen_check_and_optimize_stmt): ...to this. Handle strncat, stpncpy, strncpy, and their checking forms. gcc/testsuite/ChangeLog: PR tree-optimization/78918 * c-c++-common/Warray-bounds.c: New test. * c-c++-common/Warray-bounds-2.c: New test. * c-c++-common/Warray-bounds-3.c: New test. * c-c++-common/Warray-bounds-4.c: New test. * c-c++-common/Warray-bounds-5.c: New test. * c-c++-common/Wrestrict-2.c: New test. * c-c++-common/Wrestrict.c: New test. * c-c++-common/Wrestrict.s: New test. * c-c++-common/Wsizeof-pointer-memaccess1.c: Adjust * c-c++-common/Wsizeof-pointer-memaccess2.c: Same. * g++.dg/torture/Wsizeof-pointer-memaccess1.C: Same. * g++.dg/torture/Wsizeof-pointer-memaccess2.C: Same. * gcc.dg/range.h: New header. * gcc.dg/memcpy-6.c: New test. * gcc.dg/pr69172.c: Adjust. * gcc.dg/pr79223.c: Same. * gcc.dg/pr81345.c: Adjust. * gcc.dg/Wobjsize-1.c: Same. * gcc.dg/Wrestrict-2.c: New test. * gcc.dg/Wrestrict.c: New test. * gcc.dg/Wsizeof-pointer-memaccess1.c: Adjust. * gcc.dg/builtin-stpncpy.c: Same. * gcc.dg/builtin-stringop-chk-1.c: Same. * gcc.target/i386/chkp-stropt-17.c: New test. * gcc.dg/torture/Wsizeof-pointer-memaccess1.c: Adjust. Added: trunk/gcc/gimple-ssa-warn-restrict.c trunk/gcc/gimple-ssa-warn-restrict.h trunk/gcc/testsuite/c-c++-common/Warray-bounds-2.c trunk/gcc/testsuite/c-c++-common/Warray-bounds-3.c trunk/gcc/testsuite/c-c++-common/Warray-bounds-4.c trunk/gcc/testsuite/c-c++-common/Warray-bounds-5.c trunk/gcc/testsuite/c-c++-common/Wrestrict-2.c trunk/gcc/testsuite/c-c++-common/Wrestrict.c trunk/gcc/testsuite/gcc.dg/Wrestrict-2.c trunk/gcc/testsuite/gcc.dg/Wrestrict.c trunk/gcc/testsuite/gcc.dg/memcpy-6.c trunk/gcc/testsuite/gcc.dg/range.h trunk/gcc/testsuite/gcc.target/i386/chkp-stropt-17.c Modified: trunk/gcc/ChangeLog trunk/gcc/Makefile.in trunk/gcc/builtins.c trunk/gcc/builtins.h trunk/gcc/c-family/ChangeLog trunk/gcc/c-family/c-common.c trunk/gcc/c-family/c.opt trunk/gcc/calls.c trunk/gcc/calls.h trunk/gcc/cfgexpand.c trunk/gcc/doc/invoke.texi trunk/gcc/gimple-fold.c trunk/gcc/passes.def trunk/gcc/testsuite/ChangeLo
[Bug middle-end/78918] missing -Wrestrict on memcpy copying over self
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78918 Martin Sebor changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Assignee|unassigned at gcc dot gnu.org |msebor at gcc dot gnu.org --- Comment #6 from Martin Sebor --- Patch committed in r255755.
[Bug tree-optimization/35503] Warning about restricted pointers?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35503 Martin Sebor changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #12 from Martin Sebor --- Patch committed in r255755.
[Bug middle-end/49774] [meta-bug] restrict qualification aliasing issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49774 Bug 49774 depends on bug 35503, which changed state. Bug 35503 Summary: Warning about restricted pointers? https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35503 What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED
[Bug go/83308] Missing platform definitions for SH in libgo
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83308 --- Comment #14 from Oleg Endo --- (In reply to John Paul Adrian Glaubitz from comment #13) > Cacheline size is 32 bytes according to the documentation: > > > www.st.com/resource/en/user_manual/cd00147165.pdf (page 75) Cache line sizes of original SH implementations: SH2,SH2A,SH3: 16 bytes SH4, SH4A: 32 bytes > > PC quantum should be 2 bytes as SH uses a 16-bit instruction encoding. > SH2A and SH-DSP have actually 4 byte instructions. There are also some late SH4A variants which can do 16-bit prefixes, resulting in 4 byte instructions. Other (newer) SH implementations might deviate from the originals and use multiple-length instructions or different cache line sizes. But I don't think that matters a lot. E.g. 68K has variable length instructions and GOARCH_PCQUANTUM=4. Not sure how much the cache line size is of an importance for libgo ... > No idea about GOARCH_MINFRAMESIZE though. > > Patch submitted here: > https://gcc.gnu.org/ml/gcc-patches/2017-12/msg0.html That looks OK. On SH the minimum stack pointer alignment is 4.