[Bug tree-optimization/79594] New: -Waggressive-loop-optimizations incomplete and/or inconsistentt
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79594 Bug ID: 79594 Summary: -Waggressive-loop-optimizations incomplete and/or inconsistentt Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: vincenzo.innocente at cern dot ch Target Milestone: --- given cat aggressiveLoop.cc #include #include float x[1024]; float y[1024]; float w[512]; float z[128]; float c,q; void foo() { for (int i=0; i<1024; ++i) { auto zz=z[i]; auto yy = y[i]; if(x[i] > q) yy = zz; y[i]=yy; } } void foo2() { for (int i=0; i<1024; ++i) { auto zz=z[i]; auto yy = w[i]; if(x[i] > q) yy = zz; x[i]=yy; } } void foo3() { for (int i=0; i<1024; ++i) { auto zz=z[i]; auto yy = w[i]; if(x[i] > q) yy = zz; w[i]=yy; } } gcc version 7.0.1 20170205 (experimental) [trunk revision 245191] (GCC) reports c++ -Wall -O2 aggressiveLoop.cc -S aggressiveLoop.cc: In function 'void foo()': aggressiveLoop.cc:13:9: warning: iteration 128 invokes undefined behavior [-Waggressive-loop-optimizations] auto zz=z[i]; ^~ aggressiveLoop.cc:12:18: note: within this loop for (int i=0; i<1024; ++i) { ~^ aggressiveLoop.cc: In function 'void foo2()': aggressiveLoop.cc:22:9: warning: iteration 128 invokes undefined behavior [-Waggressive-loop-optimizations] auto zz=z[i]; ^~ aggressiveLoop.cc:21:18: note: within this loop for (int i=0; i<1024; ++i) { ~^ aggressiveLoop.cc: In function 'void foo3()': aggressiveLoop.cc:34:8: warning: iteration 512 invokes undefined behavior [-Waggressive-loop-optimizations] w[i]=yy; ^~~ aggressiveLoop.cc:30:18: note: within this loop for (int i=0; i<1024; ++i) { ~^ while in foo2 there is also "auto yy = w[i];" and in foo3 both assignments auto zz=z[i]; auto yy = w[i]; will "invokes undefined behavior" at iterations 128 and 512...
[Bug c++/69523] -Wliteral-suffix should not warn within namespace std
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69523 --- Comment #12 from Jonathan Wakely --- Author: redi Date: Sun Feb 19 14:13:53 2017 New Revision: 245574 URL: https://gcc.gnu.org/viewcvs?rev=245574&root=gcc&view=rev Log: PR c++/69523 make -Wliteral-suffix control warning gcc: PR c++/69523 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update description. gcc/cp: 2017-02-19 Eric Fiselier Jonathan Wakely PR c++/69523 * parser.c (cp_parser_unqualified_id): Use OPT_Wliteral_suffix to control warning about literal suffix identifiers without a leading underscore. gcc/testsuite: 2017-02-19 Eric Fiselier Jonathan Wakely PR c++/69523 * g++.dg/cpp0x/Wliteral-suffix2.C: New test. Added: trunk/gcc/testsuite/g++.dg/cpp0x/Wliteral-suffix2.C Modified: trunk/gcc/ChangeLog trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c trunk/gcc/doc/invoke.texi trunk/gcc/testsuite/ChangeLog
[Bug c++/69523] -Wliteral-suffix should not warn within namespace std
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69523 Jonathan Wakely changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED Target Milestone|--- |7.0 --- Comment #13 from Jonathan Wakely --- Patch committed to trunk, thanks.
[Bug target/71017] libgcc/config/i386/cpuinfo.c:346:17: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71017 --- Comment #5 from dominiq at gcc dot gnu.org --- Author: dominiq Date: Sun Feb 19 16:12:34 2017 New Revision: 245576 URL: https://gcc.gnu.org/viewcvs?rev=245576&root=gcc&view=rev Log: 2017-02-19 Dominique d'Humieres PR target/71017 * config/i386/cpuid.h: Fix undefined behavior. Modified: branches/gcc-5-branch/gcc/ChangeLog branches/gcc-5-branch/gcc/config/i386/cpuid.h
[Bug target/71017] libgcc/config/i386/cpuinfo.c:346:17: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71017 Dominique d'Humieres changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- --- Comment #6 from Dominique d'Humieres --- > It should be fixed now. Closing. I forgot to commit the fix to the 5 branch, done now. I also noticed that the same problem occurs with #define bit_3DNOW (1 << 31) but I don't know how to test the obvious fix. Is it OK to commit it nevertheless?
[Bug c++/79380] ICE on C++11 code with illegal alignas specifier on x86_64-linux-gnu: unexpected expression ‘f’ of kind overload
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79380 --- Comment #4 from paolo at gcc dot gnu.org --- Author: paolo Date: Sun Feb 19 17:43:41 2017 New Revision: 245578 URL: https://gcc.gnu.org/viewcvs?rev=245578&root=gcc&view=rev Log: /cp 2017-02-19 Paolo Carlini PR c++/79380 * typeck.c (cxx_alignas_expr): Reject a non-integral alignas argument. /testsuite 2017-02-19 Paolo Carlini PR c++/79380 * g++.dg/cpp0x/alignas8.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/alignas8.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/79335] [7 Regression] Conditional jump or move depends on uninitialised in value get_scalar_to_descriptor_type(tree_node*, symbol_attribute) (trans-expr.c:53)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79335 --- Comment #9 from vehre at gcc dot gnu.org --- Author: vehre Date: Sun Feb 19 18:18:33 2017 New Revision: 245579 URL: https://gcc.gnu.org/viewcvs?rev=245579&root=gcc&view=rev Log: gcc/fortran/ChangeLog: 2017-02-19 Andre Vehreschild PR fortran/79335 * trans-array.c (duplicate_allocatable_coarray): Ensure attributes passed are properly initialized. (structure_alloc_comps): Same. * trans-expr.c (gfc_trans_structure_assign): Same. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-array.c trunk/gcc/fortran/trans-expr.c
[Bug fortran/79402] ICE with submodules: module procedure interface defined in parent module
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79402 --- Comment #3 from Paul Thomas --- Author: pault Date: Sun Feb 19 18:27:14 2017 New Revision: 245580 URL: https://gcc.gnu.org/viewcvs?rev=245580&root=gcc&view=rev Log: 2017-02-19 Paul Thomas PR fortran/79402 * resolve.c (fixup_unique_dummy): New function. (gfc_resolve_expr): Call it for dummy variables with a unique symtree name. 2017-02-19 Paul Thomas PR fortran/79402 * gfortran.dg/submodule_23.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/submodule_23.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/resolve.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/79229] [7 Regression] ICE in gfc_trans_assignment_1 with -fcheck=mem
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79229 --- Comment #5 from vehre at gcc dot gnu.org --- Author: vehre Date: Sun Feb 19 18:43:49 2017 New Revision: 245581 URL: https://gcc.gnu.org/viewcvs?rev=245581&root=gcc&view=rev Log: gcc/testsuite/ChangeLog: 2017-02-19 Andre Vehreschild PR fortran/79229 * gfortran.dg/class_allocate_24.f90: New test. gcc/fortran/ChangeLog: 2017-02-19 Andre Vehreschild PR fortran/79229 * trans-expr.c (gfc_trans_assignment_1): Deref indirect refs when compiling with -fcheck=mem to check the pointer and not the data. Added: trunk/gcc/testsuite/gfortran.dg/class_allocate_24.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-expr.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/79229] [7 Regression] ICE in gfc_trans_assignment_1 with -fcheck=mem
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79229 --- Comment #6 from vehre at gcc dot gnu.org --- Waiting one week for regression reports before closing.
[Bug fortran/79335] [7 Regression] Conditional jump or move depends on uninitialised in value get_scalar_to_descriptor_type(tree_node*, symbol_attribute) (trans-expr.c:53)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79335 vehre at gcc dot gnu.org changed: What|Removed |Added Status|REOPENED|WAITING --- Comment #10 from vehre at gcc dot gnu.org --- Waiting one week for regression reports before closing.
[Bug c++/79595] New: Inconsistent grammar in diagnostic "partial specialization %q+D does not specialize"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79595 Bug ID: 79595 Summary: Inconsistent grammar in diagnostic "partial specialization %q+D does not specialize" Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- Code from cp/pt.c: if (!flag_concepts) error ("partial specialization %q+D does not specialize " "any template arguments", decl); else error ("partial specialization %q+D does not specialize any " "template arguments and is not more constrained than", decl); inform (DECL_SOURCE_LOCATION (maintmpl), "primary template here"); The first sentence is: location1: partial specialization %q+D does not specialize any template arguments location2: primary template here The second sentence is: location1: partial specialization %q+D does not specialize any template arguments and is not more constrained than location2: primary template here In German, it is not possible to translate both sentences to actually understandable grammar at the same time. Even in English, the second of these is a complete sentence (split into two parts, which is often problematic for translators), while the first is a concatenation of two sentence fragments. Therefore the call to inform should use different text for the two cases.
[Bug fortran/79596] New: translation: argument to gfc_internal_error should not be translated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79596 Bug ID: 79596 Summary: translation: argument to gfc_internal_error should not be translated Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- Internal errors should not be translated. Their only purpose is to give information back to the developers, and this information should not be modified by any translator. It is not even necessary that the end user sees a cleartext description of the error, much less translated into any language. This would mean that the developers would have to translate back the internal error description from any of the 50+? languages to see what the exact error was. Not translating these internal errors creates less burden on the translators and helps the GCC developers to more quickly get down to the actual fixing of the bugs.
[Bug fortran/79597] New: Incomplete error message "Expecting %
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79597 Bug ID: 79597 Summary: Incomplete error message "Expecting % " "at %C, ", s1); There is a trailing comma. In the corresponding "else" clause, there is a complete sentence. One of these is probably wrong.
[Bug c++/79598] New: ERROR: relocation R_X86_64_32S against symbol can not be used when making a shared object; recompile with -fPIC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79598 Bug ID: 79598 Summary: ERROR: relocation R_X86_64_32S against symbol can not be used when making a shared object; recompile with -fPIC Product: gcc Version: 6.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: contact at ncomputers dot org Target Milestone: --- Created attachment 40773 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40773&action=edit asm.cpp asm.ii asm.o asm.s when compiling this code in g++ 6.3.0, this error appears: > g++ asm.cpp /usr/bin/ld: /tmp/ccyoFrId.o: relocation R_X86_64_32S against symbol `ts' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Nonrepresentable section on output collect2: error: ld returned 1 exit status > g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 6.3.0-6' --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=x86_64-linux-gnu- --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-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --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-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 6.3.0 20170205 (Debian 6.3.0-6)
[Bug fortran/79447] [F08] gfortran rejects valid & accepts invalid internal subprogram in a submodule
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79447 --- Comment #5 from Paul Thomas --- Author: pault Date: Sun Feb 19 19:59:20 2017 New Revision: 245582 URL: https://gcc.gnu.org/viewcvs?rev=245582&root=gcc&view=rev Log: 2017-02-19 Paul Thomas PR fortran/79447 * decl.c (gfc_set_constant_character_len): Whitespace. (gfc_match_end): Catch case where a procedure is contained in a module procedure and ensure that 'end procedure' is the correct termination. 2017-02-19 Paul Thomas PR fortran/79447 * gfortran.dg/submodule_24.f08 : New test. Added: trunk/gcc/testsuite/gfortran.dg/submodule_24.f08 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/decl.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/79599] New: typo in diagnostic gfc_error ("DTIO dummy argument at %L be a scalar"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79599 Bug ID: 79599 Summary: typo in diagnostic gfc_error ("DTIO dummy argument at %L be a scalar" Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- fortran/interface.c: gfc_error ("DTIO dummy argument at %L be a scalar", There is a "must" missing.
[Bug c++/79600] New: [c++11] reinterpret_cast not working in enum class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79600 Bug ID: 79600 Summary: [c++11] reinterpret_cast not working in enum class Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: smal.root at gmail dot com Target Milestone: --- Created attachment 40774 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40774&action=edit source code New compiler do not want to assign value to member of enum class and show error: 1.cpp: In function 'int main()': 1.cpp:14:43: error: reinterpret_cast from integer to pointer EnumMember = reinterpret_cast(&TEST_MACROS) ^ 1.cpp:14:43: error: 'reinterpret_cast(2048)' is not a constant expression 1.cpp:14:58: error: enumerator value for 'EnumMember' is not an integer constant EnumMember = reinterpret_cast(&TEST_MACROS) But value successfully assigned for regular variable. avr-gcc-4.9.4 - compilation successful avr-gcc-5.4.0 - compilation successful avr-gcc-6.3.0 - compilation error avr-gcc-7.0.1-20170219 - compilation error I'll attach *.ii files for every gcc version. Build string: avr-g++ -save-temps -std=c++11 -Wall -Os -pedantic -mmcu=atxmega128a3u -c 1.cpp -o 1.o && avr-g++ -std=c++11 -Wall -Os -mmcu=atxmega128a3u 1.o -o 1 Information about compilers 1. Using built-in specs. COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=/opt/toolchain/avr/libexec/gcc/avr/4.9.4/lto-wrapper Target: avr Configured with: ../gcc-4.9.4/configure --prefix=/opt/toolchain/avr --target=avr --disable-nls --enable-languages=c,c++ --disable-libssp --enable-lto --with-isl Thread model: single gcc version 4.9.4 (GCC) 2. 5.4.0 Using built-in specs. Reading specs from /opt/toolchain/avr_5/lib/gcc/avr/5.4.0/device-specs/specs-avr2 COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=/opt/toolchain/avr_5/libexec/gcc/avr/5.4.0/lto-wrapper Target: avr Configured with: ../gcc-5.4.0/configure --prefix=/opt/toolchain/avr_5 --disable-nls --disable-shared --target=avr --disable-install-libiberty --disable-libssp --disable-libstdcxx-pch --disable-libunwind-exceptions --disable-linker-build-id --disable-werror --disable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-gold --enable-languages=c,c++ --enable-ld=default --enable-lto --enable-plugin --enable-shared --with-gnu-as --with-gnu-ld --with-plugin-ld=ld.gold --with-system-zlib --with-isl --enable-gnu-indirect-function Thread model: single gcc version 5.4.0 (GCC) 3. 6.3.0 Using built-in specs. Reading specs from /opt/toolchain/avr_6/lib/gcc/avr/6.3.0/device-specs/specs-avr2 COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=/opt/toolchain/avr_6/libexec/gcc/avr/6.3.0/lto-wrapper Target: avr Configured with: ../gcc-6.3.0/configure --prefix=/opt/toolchain/avr_6 --disable-nls --disable-shared --target=avr --disable-install-libiberty --disable-libssp --disable-libstdcxx-pch --disable-libunwind-exceptions --disable-linker-build-id --disable-werror --disable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-gold --enable-languages=c,c++ --enable-ld=default --enable-lto --enable-plugin --enable-shared --with-gnu-as --with-gnu-ld --with-plugin-ld=ld.gold --with-system-zlib --with-isl --enable-gnu-indirect-function Thread model: single gcc version 6.3.0 (GCC) 4. trunk Using built-in specs. Reading specs from /opt/toolchain/avr_trunk/lib/gcc/avr/7.0.1/device-specs/specs-avr2 COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=/opt/toolchain/avr_trunk/libexec/gcc/avr/7.0.1/lto-wrapper Target: avr Configured with: ../gcc_trunk/configure --prefix=/opt/toolchain/avr_trunk --disable-nls --disable-shared --target=avr --enable-languages=c,c++ --enable-lto --enable-plugin --with-isl Thread model: single gcc version 7.0.1 20170219 (experimental) (GCC) Why do not to use version 4 or 5? )) avr-gcc-4.9.4 generate file with size ~58kB. Nice, but not working. avr-gcc-5.3.0 generate file with size ~74kB. Uncool.
[Bug c++/79600] [c++11] reinterpret_cast not working in enum class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79600 --- Comment #1 from smalcom --- Created attachment 40775 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40775&action=edit ii from 4.9.4
[Bug c++/79600] [c++11] reinterpret_cast not working in enum class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79600 --- Comment #2 from smalcom --- Created attachment 40776 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40776&action=edit ii from 6.3.0
[Bug c++/79600] [c++11] reinterpret_cast not working in enum class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79600 --- Comment #3 from smalcom --- Created attachment 40777 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40777&action=edit ii from 7.0.1
[Bug fortran/79601] New: Possibly wrong use of keyword "intent" in diagnostic
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79601 Bug ID: 79601 Summary: Possibly wrong use of keyword "intent" in diagnostic Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- fortran/interface.c: if (fsym->attr.intent != intent) gfc_error ("DTIO dummy argument at %L must have intent %s", &fsym->declared_at, gfc_code2string (intents, (int)intent)); Should the "intent %s" be "INTENT %s" instead?
[Bug fortran/79602] New: translation: globally replace '%s' with %qs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79602 Bug ID: 79602 Summary: translation: globally replace '%s' with %qs Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- There are several strings of the following form: Too few dummy arguments in DTIO procedure '%s' at %L These should be converted to the now common form using %qs: Too few dummy arguments in DTIO procedure %qs at %L When doing this, please make sure to not burden each i18n translator with the task of updating the translations themselves, but apply an automatic search-and-replace instead. If you don't have such a program available, have a look at https://github.com/rillig/translation-team-de/blob/master/autocorrect.lua, which I just used for the recent and similar \"%s\" -> %qs migration.
[Bug fortran/79603] New: make diagnostics more i18n-friendly
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79603 Bug ID: 79603 Summary: make diagnostics more i18n-friendly Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- from fortran/options.c: Flag %<-fno-automatic%> overwrites %<-fmax-stack-var-size=%d%> Flag %<-fno-automatic%> overwrites %<-frecursive%> Flag %<-fno-automatic%> overwrites %<-frecursive%> implied by %<-fopenmp%> Flag %<-frecursive%> overwrites %<-fmax-stack-var-size=%d%> These diagnostics are boring for translators, since they all follow the very same structure, most probably in all languages of the world. Therefore, these messages should use the placeholder %qs so that the translators only have to translate it once. Flag %qs overwrites %qs This also removes the possibility of introducing wrong warnings by unintentionally sloppy translation.
[Bug c++/79604] New: attribute noreturn inconsistent between C and C++, undocumented for function pointers
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79604 Bug ID: 79604 Summary: attribute noreturn inconsistent between C and C++, undocumented for function pointers Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: msebor at gcc dot gnu.org Target Milestone: --- Like GCC (in C mode) G++ accepts attribute noreturn on function pointer declarations, but unlike in C mode then ignores the attribute when the pointer is used to call a function. G++ should be consistent with GCC. In addition, the effects of the attribute on function pointers are not documented in the Common Variable Attributes section of the manual. The attribute should be mentioned there as well and its effects on function pointers should be documented. $ (set -x && cat u.C && for lang in c c++; do gcc -S -Wall -Wunused -Wpedantic -x$lang u.C; done) + cat u.C void (*pf)() __attribute__ ((noreturn)); void (*pg)(); int foo () { pf (); // no warning in C (good), but warning in C++ (bug) } int bar () { pg (); // warning in both C and C++ (good) } + for lang in c c++ + /build/gcc-git/gcc/xgcc -B /build/gcc-git/gcc -S -Wall -Wunused -Wpedantic -xc u.C u.C: In function ‘bar’: u.C:13:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ + for lang in c c++ + /build/gcc-git/gcc/xgcc -B /build/gcc-git/gcc -S -Wall -Wunused -Wpedantic -xc++ u.C u.C: In function ‘int foo()’: u.C:8:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ u.C: In function ‘int bar()’: u.C:13:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^
[Bug c++/79605] New: attribute [[noreturn]] accepted in explicit instantiation directives
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79605 Bug ID: 79605 Summary: attribute [[noreturn]] accepted in explicit instantiation directives Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: msebor at gcc dot gnu.org Target Milestone: --- G++ accepts __attribute__((noreturn)) in explicit instantiation derectives of function templates where it is applied to the implicit declaration of the specialization of the template. However, the C++ 17 attribute [[noreturn]] "may be applied to the declarator-id in a function declaration" and is not explicitly permitted to be applied in other contexts, such as in explicit instantiation derectives. Other compilers, including Clang 5.0 and EDG eccp 4.11 reject the attribute there but GCC silently accepts it even in pedantic mode. For conformance, GCC should diagnose the attribute there as well. $ cat u.C && gcc -S -Wall -Wunused -Wpedantic u.C template T f () { throw; } template [[noreturn]] int f (); template int g () { throw; } template __attribute__ ((noreturn)) int g (); int f1 () { f(); // not diagnosed (bug) } int g1 () { g(); // accepted (okay) }
[Bug c++/79503] [7 Regression] [new inheriting ctors] spurious bad candidate from same or derived type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79503 Jason Merrill changed: What|Removed |Added Status|NEW |ASSIGNED CC||jason at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
[Bug target/71017] libgcc/config/i386/cpuinfo.c:346:17: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71017 --- Comment #7 from Uroš Bizjak --- (In reply to Dominique d'Humieres from comment #6) > > It should be fixed now. Closing. > > I forgot to commit the fix to the 5 branch, done now. I also noticed that > the same problem occurs with > > #define bit_3DNOW (1 << 31) > > but I don't know how to test the obvious fix. Is it OK to commit it > nevertheless? Yes. Please go ahead with the patch.
[Bug libstdc++/68739] FAIL: 30_threads/call_once/constexpr.cc (test for excess errors)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68739 --- Comment #8 from dave.anglin at bell dot net --- On 2017-02-18, at 1:51 PM, redi at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68739 > > --- Comment #6 from Jonathan Wakely --- > Oh, (void*)1 works, it's only rejected with the LL suffix. That's not > conforming either (and Clang rejects it). I'll see if I can fix this with an include hack. Dave -- John David Anglin dave.ang...@bell.net
[Bug c++/79580] [5/6/7 Regression] ICE in nested_anon_class_index, at cp/mangle.c:1604
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79580 Jason Merrill changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed|2017-02-17 00:00:00 |2017-02-19 Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org Ever confirmed|0 |1
[Bug c++/79500] [7 Regression] [c++1z] non-template deduction guides cause crash
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79500 Jason Merrill changed: What|Removed |Added Status|NEW |ASSIGNED CC||jason at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
[Bug c++/79606] New: [7 Regression] ICE with NSDMI and this pointer in template
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79606 Bug ID: 79606 Summary: [7 Regression] ICE with NSDMI and this pointer in template Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org Target Milestone: --- The following valid code snippet triggers an ICE on trunk: = struct A { int i = 0; }; template struct B : A { int j = this->i; }; B<0> b; = bug.cc:8:17: internal compiler error: in build_simple_base_path, at cp/class.c:597 int j = this->i; ^ 0x6b87f3 build_simple_base_path ../../gcc/gcc/cp/class.c:597 0x6d7c8f build_base_path(tree_code, tree_node*, tree_node*, int, int) ../../gcc/gcc/cp/class.c:430 0x763f22 build_class_member_access_expr(cp_expr, tree_node*, tree_node*, bool, int) ../../gcc/gcc/cp/typeck.c:2413 0x764b35 finish_class_member_access_expr(cp_expr, tree_node*, bool, int) ../../gcc/gcc/cp/typeck.c:2898 0x72e620 cp_parser_postfix_dot_deref_expression ../../gcc/gcc/cp/parser.c:7467 0x721abd cp_parser_postfix_expression ../../gcc/gcc/cp/parser.c:7044 0x722ebd cp_parser_unary_expression ../../gcc/gcc/cp/parser.c:8124 0x723e13 cp_parser_cast_expression ../../gcc/gcc/cp/parser.c:8801 0x724567 cp_parser_binary_expression ../../gcc/gcc/cp/parser.c:8902 0x724e34 cp_parser_assignment_expression ../../gcc/gcc/cp/parser.c:9189 0x725237 cp_parser_constant_expression ../../gcc/gcc/cp/parser.c:9459 0x726154 cp_parser_initializer_clause ../../gcc/gcc/cp/parser.c:21586 0x72739b cp_parser_initializer ../../gcc/gcc/cp/parser.c:21526 0x7274a1 cp_parser_late_parse_one_default_arg ../../gcc/gcc/cp/parser.c:27205 0x71ac35 cp_parser_late_parsing_nsdmi ../../gcc/gcc/cp/parser.c:27253 0x71ac35 cp_parser_class_specifier_1 ../../gcc/gcc/cp/parser.c:22308 0x71cc19 cp_parser_class_specifier ../../gcc/gcc/cp/parser.c:22361 0x71cc19 cp_parser_type_specifier ../../gcc/gcc/cp/parser.c:16434 0x71db0a cp_parser_decl_specifier_seq ../../gcc/gcc/cp/parser.c:13347 0x719305 cp_parser_single_declaration ../../gcc/gcc/cp/parser.c:26628 Please submit a full bug report, [etc.]
[Bug c++/79470] [7 Regression] "partial specialization is not more specialized" with variadic non-type const& template parameters
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79470 Jason Merrill changed: What|Removed |Added Status|NEW |ASSIGNED CC||jason at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
[Bug c++/79380] ICE on C++11 code with illegal alignas specifier on x86_64-linux-gnu: unexpected expression ‘f’ of kind overload
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79380 Paolo Carlini changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot gnu.org --- Comment #5 from Paolo Carlini --- Fixed.
[Bug c++/79400] [7 Regression] Confusing 'noexcept' suggestion on throw (X)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79400 Jason Merrill changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
[Bug c++/79566] [6/7 Regression] elaborated-type-specifier incorrectly rejected in range-based for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79566 Jason Merrill changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2017-02-19 CC||jason at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org Ever confirmed|0 |1
[Bug c++/79607] New: [5/6/7 Regression] ICE with brace-initialization of static const member
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79607 Bug ID: 79607 Summary: [5/6/7 Regression] ICE with brace-initialization of static const member Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, rejects-valid Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org Target Milestone: --- The following valid code snippet triggers an ICE since GCC 5.1.0: = template struct A { static const int i = int{T{}}; }; A a; = bug.cc:3:31: internal compiler error: in verify_ctor_sanity, at cp/constexpr.c:2633 static const int i = int{T{}}; ^ 0x834b57 verify_ctor_sanity ../../gcc/gcc/cp/constexpr.c:2633 0x83a4ff cxx_eval_bare_aggregate ../../gcc/gcc/cp/constexpr.c:2669 0x83a4ff cxx_eval_constant_expression ../../gcc/gcc/cp/constexpr.c:4314 0x83fb1e cxx_eval_outermost_constant_expr ../../gcc/gcc/cp/constexpr.c:4613 0x6b4062 store_init_value(tree_node*, tree_node*, vec**, int) ../../gcc/gcc/cp/typeck2.c:817 0x61034b check_initializer ../../gcc/gcc/cp/decl.c:6362 0x63cac6 cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int) ../../gcc/gcc/cp/decl.c:6930 0x6ec6fe grokfield(cp_declarator const*, cp_decl_specifier_seq*, tree_node*, bool, tree_node*, tree_node*) ../../gcc/gcc/cp/decl2.c:961 0x719b03 cp_parser_member_declaration ../../gcc/gcc/cp/parser.c:23404 0x71a6ba cp_parser_member_specification_opt ../../gcc/gcc/cp/parser.c:22953 0x71a6ba cp_parser_class_specifier_1 ../../gcc/gcc/cp/parser.c:22109 0x71cc19 cp_parser_class_specifier ../../gcc/gcc/cp/parser.c:22361 0x71cc19 cp_parser_type_specifier ../../gcc/gcc/cp/parser.c:16434 0x71db0a cp_parser_decl_specifier_seq ../../gcc/gcc/cp/parser.c:13347 0x719305 cp_parser_single_declaration ../../gcc/gcc/cp/parser.c:26628 0x73b25c cp_parser_template_declaration_after_parameters ../../gcc/gcc/cp/parser.c:26322 0x73aeec cp_parser_explicit_template_declaration ../../gcc/gcc/cp/parser.c:26557 0x73aeec cp_parser_template_declaration_after_export ../../gcc/gcc/cp/parser.c:26576 0x743009 cp_parser_declaration ../../gcc/gcc/cp/parser.c:12466 0x744b1b cp_parser_declaration_seq_opt ../../gcc/gcc/cp/parser.c:12393 Please submit a full bug report, [etc.] A similar code snippet is wrongly rejected: = template struct A { static const int i = T{}; }; A a; = bug.cc:3:26: error: cannot convert 'T' to 'const int' in initialization static const int i = T{}; ^ Both code snippets compile, if I replace 'T{}' by 'T()'.
[Bug c++/79607] [5/6/7 Regression] ICE with brace-initialization of static const member
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79607 --- Comment #1 from Volker Reichelt --- This might be related to PR79535.
[Bug c++/71965] [6/7 regression] [concepts] Substitution error *after* failure to satisfy an earlier constraint
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71965 Jason Merrill changed: What|Removed |Added CC||andrew.n.sutton at gmail dot com --- Comment #3 from Jason Merrill --- (In reply to Jakub Jelinek from comment #1) > Started with r238558. Right. With the faster model, when we consider whether a particular concept is satisfied, we first substitute the template arguments into the whole concept definition and then evaluate the whole thing for satisfaction. This seems to be non-conforming: N4641 says, "The satisfaction of a conjunction’s operands are evaluated left-to-right; if the left operand is not satisfied, template arguments are not substituted into the right operand, and the constraint is not satisfied." Andrew?
[Bug c++/71965] [6/7 regression] [concepts] Substitution error *after* failure to satisfy an earlier constraint
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71965 --- Comment #4 from Jakub Jelinek --- (In reply to Richard Biener from comment #2) > Hm? > > same sorry with GCC 6.2 for me. The r238558 change has been backported to 6.x branch in r238577.
[Bug c++/79535] [6/7 Regression] ICE in verify_ctor_sanity, at cp/constexpr.c:2636
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79535 Jason Merrill changed: What|Removed |Added CC||jason at gcc dot gnu.org --- Comment #2 from Jason Merrill --- We should reject the default mem-initializer for the flexible array and thereby avoid the ICE when trying to evaluate it.
[Bug c++/79607] [5/6/7 Regression] ICE with brace-initialization of static const member
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79607 Jakub Jelinek changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2017-02-19 CC||jakub at gcc dot gnu.org, ||jason at gcc dot gnu.org Target Milestone|--- |5.5 Ever confirmed|0 |1 --- Comment #2 from Jakub Jelinek --- ICEs since r196724, before that it has been rejected.
[Bug c++/79606] [7 Regression] ICE with NSDMI and this pointer in template
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79606 Jakub Jelinek changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2017-02-19 CC||jakub at gcc dot gnu.org, ||jason at gcc dot gnu.org Target Milestone|--- |7.0 Ever confirmed|0 |1 --- Comment #1 from Jakub Jelinek --- ICEs starting with r236221.
[Bug c++/79600] [c++11] reinterpret_cast not working in enum class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79600 --- Comment #4 from Jonathan Wakely --- Your code is invalid, the initializer for an enumerator must be a constant expression and you can't use reinterpret_cast in a constant expression.
[Bug target/79593] [Regression] Poor/Worse code generation for FPU on versions after 6
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79593 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek --- I see fld %st(0) in GCC 5 as well, and 4.8 and 4.4 too. So no idea what regression you are talking about.
[Bug c++/79608] New: missing space in error message "bepositive"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79608 Bug ID: 79608 Summary: missing space in error message "bepositive" Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- From cp/semantics.c: case OMP_CLAUSE_VECTOR: warning_at (OMP_CLAUSE_LOCATION (c), 0, "% length value must be" "positive"); break; case OMP_CLAUSE_WORKER: warning_at (OMP_CLAUSE_LOCATION (c), 0, "% num value must be" "positive"); You should check for any adjacent string literals where the first doesn't end with a space _and_ the second doesn't start with a space.
[Bug c++/79607] [5/6/7 Regression] ICE with brace-initialization of static const member
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79607 Jason Merrill changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
[Bug c++/79606] [7 Regression] ICE with NSDMI and this pointer in template
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79606 Jason Merrill changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
[Bug c++/79600] [c++11] reinterpret_cast not working in enum class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79600 --- Comment #5 from smalcom --- Second error string... I'm stupid. Thanks for help. So, old compilers just kinder?
[Bug c/79609] New: C address space qualifiers not available under -fno-asm, even for system headers and __extension__
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79609 Bug ID: 79609 Summary: C address space qualifiers not available under -fno-asm, even for system headers and __extension__ Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: roland at gnu dot org CC: rth at gcc dot gnu.org Target Milestone: --- It's impossible to use __seg_fs et al under -fno-asm, which is implied by e.g. -std=c11. It's ironic that it's still possible to use __asm or __asm__ under -fno-asm, but not another feature not called "asm" that also uses an __ prefix. IMHO __seg_fs et al should be allowed in a decl/expression that uses __extension__. That's what __extension__ is for. There could also be a system header exception, but those are awful and shouldn't be added for new syntax not already wrongly used in someone's system headers. Having header writers use __extension__ judiciously is much better.
[Bug c++/78282] [6/7 Regression] Overload resolution failure, in parameter pack expansion, inside a template class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78282 Jason Merrill changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2017-02-20 Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org Ever confirmed|0 |1
[Bug target/79609] C address space qualifiers not available under -fno-asm, even for system headers and __extension__
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79609 --- Comment #1 from roland at gnu dot org --- Note Clang uses __attribute__((address_space(N))) for this. That automagically handles the parsing issues in a well-known fashion, and gets C++ support for free to boot. Unfortunately they use per-target magic integer values to select among predefined address spaces, with no symbolic syntax (just documented magic values). You could e.g. change the __SEG_FS predefine to be the magic number, so that it's __attribute__((address_space(__SEG_FS))) and macroable-compatible with Clang. Or you could be more classy and take string values __attribute__((address_space("fs"))).
[Bug c/79610] New: missing space in diagnostic: %qD must be a global variable in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79610 Bug ID: 79610 Summary: missing space in diagnostic: %qD must be a global variable in Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- From c/c-parser.c: error_at (loc, "%qD must be a global variable in" "%<#pragma acc declare link%>", decl); There is a space missing between "in" an "%
[Bug c++/79611] New: missing space in diagnostic: placement new constructing an object of type %qT
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79611 Bug ID: 79611 Summary: missing space in diagnostic: placement new constructing an object of type %qT Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- From cp/init.c: warning_at (loc, OPT_Wplacement_new_, exact_size ? "placement new constructing an object of type %qT " "and size %qwu in a region of type %qT and size %qwi" : "placement new constructing an object of type %qT" "and size %qwu in a region of type %qT and size " "at most %qwu", type, bytes_need, TREE_TYPE (oper), bytes_avail); There is a space missing between "%qt" and "and".
[Bug other/79612] New: missing space in diagnostic: Incorrect rank of return array in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79612 Bug ID: 79612 Summary: missing space in diagnostic: Incorrect rank of return array in Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- From runtime/bounds.c: runtime_error ("Incorrect rank of return array in %s intrinsic:" "is %ld, should be 1", name, (long int) ret_rank); There is a space missing between "intrinsic:" and "is".
[Bug c/79613] New: missing space in diagnostic: GLOBAL CONST-PROP: Replacing reg %d in jump_insn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79613 Bug ID: 79613 Summary: missing space in diagnostic: GLOBAL CONST-PROP: Replacing reg %d in jump_insn Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- From cprop.c: fprintf (dump_file, "GLOBAL CONST-PROP: Replacing reg %d in jump_insn %d with" "constant ", REGNO (from), INSN_UID (jump)); There is a space missing between "with" and "constant".
[Bug c++/79614] New: missing space in diagnostic: the mangled name of the initialization guard variable for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79614 Bug ID: 79614 Summary: missing space in diagnostic: the mangled name of the initialization guard variable for Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- From mangle.c: warning_at (DECL_SOURCE_LOCATION (t), OPT_Wabi, "the mangled name of the initialization guard variable for" "%qD changes between -fabi-version=%d and -fabi-version=%d", t, flag_abi_version, warn_abi_version); There is a space missing between "for" and "%qD".
[Bug c/79615] New: missing space in diagnostic: Substring out of bounds: lower bound
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79615 Bug ID: 79615 Summary: missing space in diagnostic: Substring out of bounds: lower bound Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- From trans-expr.c: msg = xasprintf ("Substring out of bounds: lower bound (%%ld)" "is less than one"); There is a space missing between "(%%ld)" and "is".
[Bug target/79598] ERROR: relocation R_X86_64_32S against symbol can not be used when making a shared object; recompile with -fPIC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79598 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #1 from Andrew Pinski --- This is not a bug as your inline-asm is incorrect for PIE code. g++ t88.cc -fPIE -pie is able to reproduce on x86_64 targets where PIE is not default.
[Bug ipa/79616] New: missing space in diagnostic: Inlined into %s which now has time
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79616 Bug ID: 79616 Summary: missing space in diagnostic: Inlined into %s which now has time Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- From ipa-inline.c: fprintf (dump_file, " Inlined into %s which now has time %i and size %i," "net change of %+i.\n", edge->caller->name (), inline_summaries->get (edge->caller)->time, inline_summaries->get (edge->caller)->size, overall_size - old_size); There is a space missing between "%i," and "net".
[Bug c++/79600] [c++11] reinterpret_cast not working in enum class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79600 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #6 from Andrew Pinski --- Invalid as mentioned, reinterpret_cast is not able to use a constant expression
[Bug fortran/79617] New: missing space in diagnostic: IF clause without modifier at %L used together
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79617 Bug ID: 79617 Summary: missing space in diagnostic: IF clause without modifier at %L used together Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- From fortran/openmp.c: gfc_error ("IF clause without modifier at %L used together with" "IF clauses with modifiers", &omp_clauses->if_expr->where); There is a space missing between "with" and "IF".
[Bug c++/79611] missing space in diagnostic: placement new constructing an object of type %qT
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79611 Jonathan Wakely changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2017-02-20 Ever confirmed|0 |1
[Bug c++/79611] missing space in diagnostic: placement new constructing an object of type %qT
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79611 Jonathan Wakely changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #1 from Jonathan Wakely --- This was fixed last week by r245407
[Bug c++/79614] missing space in diagnostic: the mangled name of the initialization guard variable for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79614 Jonathan Wakely changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #1 from Jonathan Wakely --- Fixed last week by r245407
[Bug translation/79618] New: prevent missing space in multiline string literals
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79618 Bug ID: 79618 Summary: prevent missing space in multiline string literals Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: translation Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- As demonstrated in #79610, #79612, #79613, #79614, #79615, #79616, #79617, there are many chances for introducing missing spaces in multiline string literals, which can even hide test cases, like in commit 138bc75d-0d04-0410-961f-82ee72b054a4. To prevent this from ever happening again, there should be some automatic check that detects these wrong string literals. This test should currently find the word "cannot" in fortran/match.c, which is split into two lines. No problem here, but it smells like one. if (group_name->attr.flavor == FL_NAMELIST && group_name->attr.use_assoc && !gfc_notify_std (GFC_STD_GNU, "Namelist group name %qs " "at %C already is USE associated and can" "not be respecified.", group_name->name))
[Bug translation/79618] prevent missing space in multiline string literals
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79618 --- Comment #1 from Roland Illig --- Furthermore, the space should either be always at the end of the line or always at the beginning of the next line. Currently both variants are used.
[Bug target/79619] New: store via pointer obtained from alternate address space offset 0 dropped
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79619 Bug ID: 79619 Summary: store via pointer obtained from alternate address space offset 0 dropped Product: gcc Version: 6.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: roland at gnu dot org CC: rth at gcc dot gnu.org Target Milestone: --- Target: x86_64-elf Given this test code: void bug(void) { *(*(char*__seg_fs*)0) = 1; } void nobug(void) { *(*(char*__seg_fs*)0) = 1; *(*(char*__seg_fs*)8) = 1; } I get this: .text .globl bug .type bug, @function bug: .LFB0: .cfi_startproc rep ret .cfi_endproc .LFE0: .size bug, .-bug .globl nobug .type nobug, @function nobug: .LFB1: .cfi_startproc movq%fs:0, %rax movb$1, (%rax) movq%fs:8, %rax movb$1, (%rax) ret .cfi_endproc .LFE1: .size nobug, .-nobug .ident "GCC: (GNU) 6.2.0" x86_64 GCC at -O1 or better silently elides the store in bug. My guess is that it's deciding *(TYPE __seg_fs*)0 constitutes a null pointer dereference and is therefore UB so screw everybody. But alternate-address-space 0 is not a null pointer, it's just like any other alternate-address-space pointer value and should not be treated specially. (Except that if you wanted to "know" that the target ABI is that %fs:0 == %fs.base, then you can optimize (*(char*__seg_fs*)0)[n] accesses to direct "%fs:n"; LLVM does this for x86-64 glibc-based targets. But that's a missed optimization opportunity unrelated to this bug.) But note how the mere presence of a different alternate-address-space reference not at zero in the same function (nobug) makes it emit both stores! Definitely fishy. Maybe related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66768 but that's beyond my ken.
[Bug target/79619] store via pointer obtained from alternate address space offset 0 dropped
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79619 --- Comment #1 from Andrew Pinski --- Most likely assuming null pointers are undefined even for non default address spaces.
[Bug c++/71965] [6/7 regression] [concepts] Substitution error *after* failure to satisfy an earlier constraint
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71965 --- Comment #5 from Andrew Sutton --- Hmm... I haven't looked at this in a while. It looks like the expansion of ConstructibleObject is triggering the diagnostic. I'm a little surprised that this gets diagnosed -- especially with a "sorry". But it still shouldn't happen. The implementation (I suspect this comes out of satisfy_check_constraint) appears to be substituting through too aggressively. It expands the concept using the instantiated arguments, the pair of int[2][2]s, around constraint.cc:2056. I'm guessing that that ultimately triggers a substitution of those arguments into the requirements of the requires-expression. Bang! error. One solution would be to make expand_concept() simply return the definition and then decompose that expression, substituting when needed.
[Bug c++/79620] New: decltype() inside a lambda capturing-by-value
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79620 Bug ID: 79620 Summary: decltype() inside a lambda capturing-by-value Product: gcc Version: 6.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: lh_mouse at 126 dot com Target Milestone: --- The following example copied from the C++17 draft [N4582] fails to compile: void f3() { float x, &r = x; [=] { // x and r are not captured (appearance in a decltype operand is not an odr-use) decltype(x) y1; // y1 has type float decltype((x)) y2 = y1; // y2 has type float const& because this lambda // is not mutable and x is an lvalue decltype(r) r1 = y1;// r1 has type float& (transformation not considered) decltype((r)) r2 = y2; // r2 has type float const& }; } E:\Desktop>g++ -pedantic -pedantic-errors -std=c++14 test.cpp test.cpp: In lambda function: test.cpp:8:22: error: binding 'const float' to reference of type 'float&' discards qualifiers decltype((r)) r2 = y2; // r2 has type float const& ^~
[Bug tree-optimization/79621] New: [7 Regression] ICE in operator[], at vec.h:732
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79621 Bug ID: 79621 Summary: [7 Regression] ICE in operator[], at vec.h:732 Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- At least gcc-7.0.0-alpha20170212 and gcc-7.0.0-alpha20170219 snapshots ICE when compiling the following snippet w/ -O2: int b5; void h6 (int zb, int e7) { while (b5 > 0) { int gv; for (gv = 1; gv < 4; ++gv) { ((zb != 0) ? b5 : gv) && (b5 /= e7); zb = 0; } e7 = 0; } } % gcc-7.0.0-alpha20170219 -O2 -c glm1ku95.c glm1ku95.c: In function 'h6': glm1ku95.c:4:1: internal compiler error: in operator[], at vec.h:732 h6 (int zb, int e7) ^~
[Bug tree-optimization/79622] New: [7 Regression] Wrong code w/ -O2 -floop-nest-optimize
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79622 Bug ID: 79622 Summary: [7 Regression] Wrong code w/ -O2 -floop-nest-optimize Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- At least gcc-7.0.0-alpha20170212 and gcc-7.0.0-alpha20170219 snapshots produce wrong code for the following snippet w/ -O2 -floop-nest-optimize: int bf; int main (void) { int dc[5]; for (bf = 0; bf < 2; ++bf) { int l9, g5 = -1; for (l9 = 0; l9 < 5; ++l9) { dc[l9] = g5; g5 = (dc[l9] > 0); } } if (dc[0] != -1) __builtin_abort (); return 0; } % gcc-7.0.0-alpha20170219 -O2 -o good dsmbs5u1.c % ./good % echo $? 0 % gcc-7.0.0-alpha20170219 -O2 -floop-nest-optimize -o bad dsmbs5u1.c % ./bad zsh: abort (core dumped) ./bad
[Bug c++/79503] [7 Regression] [new inheriting ctors] spurious bad candidate from same or derived type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79503 --- Comment #2 from Jason Merrill --- Author: jason Date: Mon Feb 20 06:03:45 2017 New Revision: 245586 URL: https://gcc.gnu.org/viewcvs?rev=245586&root=gcc&view=rev Log: PR c++/79503 - inherited ctor taking base class * call.c (add_function_candidate): Also check that DECL_INHERITED_CTOR_BASE is reference-related to the parameter type. Added: trunk/gcc/testsuite/g++.dg/cpp0x/inh-ctor26.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c
[Bug c++/79400] [7 Regression] Confusing 'noexcept' suggestion on throw (X)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79400 --- Comment #4 from Jason Merrill --- Author: jason Date: Mon Feb 20 06:05:45 2017 New Revision: 245590 URL: https://gcc.gnu.org/viewcvs?rev=245590&root=gcc&view=rev Log: PR c++/79400 - confusing suggestion of 'noexcept' * parser.c (cp_parser_exception_specification_opt): Remove suggestion for deprecated dynamic exception-specification. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c
[Bug c++/79580] [5/6/7 Regression] ICE in nested_anon_class_index, at cp/mangle.c:1604
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79580 --- Comment #1 from Jason Merrill --- Author: jason Date: Mon Feb 20 06:05:08 2017 New Revision: 245587 URL: https://gcc.gnu.org/viewcvs?rev=245587&root=gcc&view=rev Log: PR c++/79580 - ICE with compound literal * parser.c (cp_parser_class_head): If we're in the middle of an expression, use ts_within_enclosing_non_class. Added: trunk/gcc/testsuite/g++.dg/ext/complit15.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c
[Bug c++/79470] [7 Regression] "partial specialization is not more specialized" with variadic non-type const& template parameters
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79470 --- Comment #2 from Jason Merrill --- Author: jason Date: Mon Feb 20 06:05:38 2017 New Revision: 245589 URL: https://gcc.gnu.org/viewcvs?rev=245589&root=gcc&view=rev Log: PR c++/79470 - partial ordering with reference parameters * pt.c (unify) [INDIRECT_REF]: Handle pack expansions. Added: trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ref1.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c
[Bug c++/79500] [7 Regression] [c++1z] non-template deduction guides cause crash
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79500 --- Comment #2 from Jason Merrill --- Author: jason Date: Mon Feb 20 06:05:31 2017 New Revision: 245588 URL: https://gcc.gnu.org/viewcvs?rev=245588&root=gcc&view=rev Log: PR c++/79500 - ICE with non-template deduction guide * pt.c (do_class_deduction): Use STRIP_TEMPLATE rather than DECL_TEMPLATE_RESULT. Added: trunk/gcc/testsuite/g++.dg/cpp1z/class-deduction29.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c
[Bug c++/79566] [6/7 Regression] elaborated-type-specifier incorrectly rejected in range-based for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79566 --- Comment #1 from Jason Merrill --- Author: jason Date: Mon Feb 20 06:05:54 2017 New Revision: 245591 URL: https://gcc.gnu.org/viewcvs?rev=245591&root=gcc&view=rev Log: PR c++/79566 - elaborated-type-specifier in range for * parser.c (cp_parser_simple_declaration): Fix check for type definition. Added: trunk/gcc/testsuite/g++.dg/cpp0x/range-for34.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c
[Bug c++/79607] [5/6/7 Regression] ICE with brace-initialization of static const member
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79607 --- Comment #3 from Jason Merrill --- Author: jason Date: Mon Feb 20 06:06:03 2017 New Revision: 245592 URL: https://gcc.gnu.org/viewcvs?rev=245592&root=gcc&view=rev Log: PR c++/79607 - ICE with T{} initializer * decl.c (type_dependent_init_p): Check the type of a CONSTRUCTOR. Added: trunk/gcc/testsuite/g++.dg/template/init11.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl.c
[Bug c++/78282] [6/7 Regression] Overload resolution failure, in parameter pack expansion, inside a template class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78282 --- Comment #4 from Jason Merrill --- Author: jason Date: Mon Feb 20 06:06:39 2017 New Revision: 245594 URL: https://gcc.gnu.org/viewcvs?rev=245594&root=gcc&view=rev Log: PR c++/78282 - auto template and pack expansion * pt.c (find_parameter_packs_r): Don't walk into the type of templates other than template template-parameters. Added: trunk/gcc/testsuite/g++.dg/cpp1y/auto-fn36.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c
[Bug c++/79606] [7 Regression] ICE with NSDMI and this pointer in template
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79606 --- Comment #2 from Jason Merrill --- Author: jason Date: Mon Feb 20 06:06:20 2017 New Revision: 245593 URL: https://gcc.gnu.org/viewcvs?rev=245593&root=gcc&view=rev Log: PR c++/79606 - ICE with this->base_member in NSDMI * class.c (build_base_path): Check processing_template_decl. Added: trunk/gcc/testsuite/g++.dg/cpp0x/nsdmi-template16.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c
[Bug c++/79503] [7 Regression] [new inheriting ctors] spurious bad candidate from same or derived type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79503 Jason Merrill changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED Target Milestone|--- |7.0 --- Comment #3 from Jason Merrill --- Fixed.
[Bug c++/79580] [5/6 Regression] ICE in nested_anon_class_index, at cp/mangle.c:1604
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79580 Jason Merrill changed: What|Removed |Added Known to work||7.0 Summary|[5/6/7 Regression] ICE in |[5/6 Regression] ICE in |nested_anon_class_index, at |nested_anon_class_index, at |cp/mangle.c:1604|cp/mangle.c:1604 Known to fail|7.0 | --- Comment #2 from Jason Merrill --- Fixed on trunk so far.
[Bug c++/79500] [7 Regression] [c++1z] non-template deduction guides cause crash
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79500 Jason Merrill changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED Target Milestone|--- |7.0 --- Comment #3 from Jason Merrill --- Fixed.
[Bug target/79623] New: error building a cross compiler for powerpc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79623 Bug ID: 79623 Summary: error building a cross compiler for powerpc Product: gcc Version: 4.8.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: sbansal at ciena dot com Target Milestone: --- Created attachment 40778 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40778&action=edit config.log GCC version being compiled : 4.8.1 Host machine GCC version : 4.8.5 Compiled binUtils and all the pre-requisties packages like gmp, mpfr, mpc, isl. make[1]: Entering directory `/home/sbansal/compiler/build-gcc/libiberty' if [ x"-fpic" != x ] && [ ! -d pic ]; then \ mkdir pic; \ else true; fi touch stamp-picdir if [ x"-fpic" != x ]; then \ gcc -c -DHAVE_CONFIG_H -g -O2 -I. -I../../gcc-4.8/libiberty/../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic -fpic ../../gcc-4.8/libiberty/regex.c -o pic/regex.o; \ else true; fi In file included from /usr/include/stdlib.h:314:0, from ../../gcc-4.8/libiberty/regex.c:130: /usr/include/sys/types.h:98:17: error: two or more data types in declaration specifiers typedef __pid_t pid_t; ^ /usr/include/sys/types.h:109:19: error: two or more data types in declaration specifiers typedef __ssize_t ssize_t; ^ make[1]: *** [regex.o] Error 1 make[1]: Leaving directory `/home/sbansal/compiler/build-gcc/libiberty' make: *** [all-libiberty] Error 2 Please let me know if more info is needed in this regard. Regards, Sumit
[Bug c++/79470] [7 Regression] "partial specialization is not more specialized" with variadic non-type const& template parameters
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79470 Jason Merrill changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED Target Milestone|--- |7.0 --- Comment #3 from Jason Merrill --- Fixed.
[Bug c++/79400] [7 Regression] Confusing 'noexcept' suggestion on throw (X)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79400 Jason Merrill changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from Jason Merrill --- Fixed.
[Bug c++/79607] [5/6 Regression] ICE with brace-initialization of static const member
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79607 Jason Merrill changed: What|Removed |Added Summary|[5/6/7 Regression] ICE with |[5/6 Regression] ICE with |brace-initialization of |brace-initialization of |static const member |static const member --- Comment #4 from Jason Merrill --- Fixed on trunk so far.
[Bug c++/79566] [6 Regression] elaborated-type-specifier incorrectly rejected in range-based for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79566 Jason Merrill changed: What|Removed |Added Known to work||7.0 Summary|[6/7 Regression]|[6 Regression] |elaborated-type-specifier |elaborated-type-specifier |incorrectly rejected in |incorrectly rejected in |range-based for |range-based for Known to fail|7.0 | --- Comment #2 from Jason Merrill --- Fixed on trunk so far.
[Bug c++/79606] [7 Regression] ICE with NSDMI and this pointer in template
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79606 Jason Merrill changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #3 from Jason Merrill --- Fixed.
[Bug c++/78282] [6 Regression] Overload resolution failure, in parameter pack expansion, inside a template class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78282 Jason Merrill changed: What|Removed |Added Summary|[6/7 Regression] Overload |[6 Regression] Overload |resolution failure, in |resolution failure, in |parameter pack expansion, |parameter pack expansion, |inside a template class |inside a template class --- Comment #5 from Jason Merrill --- Fixed on trunk so far.
[Bug fortran/79229] [7 Regression] ICE in gfc_trans_assignment_1 with -fcheck=mem
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79229 --- Comment #7 from Jürgen Reuter --- (In reply to vehre from comment #6) > Waiting one week for regression reports before closing. All fine with our code. Thanks for the quick fix.
[Bug tree-optimization/79151] Missed BB vectorization with strided/scalar stores
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79151 --- Comment #2 from Thomas Koenig --- Another test case. It might even be profitable just to look for divisions, because these are so expensive that packing/unpacking should always be profitable. double foo(double a, double b) { return 1/a + 1/b; } double v_foo (double a, double b) { typedef double v2do __attribute__((vector_size (16))); v2do x, y; x[0] = a; x[1] = b; y = 1/x; return y[0] + y[1]; } Assembly: foo is movsd .LC0(%rip), %xmm2 movapd %xmm2, %xmm3 divsd %xmm1, %xmm2 divsd %xmm0, %xmm3 movapd %xmm3, %xmm0 addsd %xmm2, %xmm0 ret and v_foo is unpcklpd%xmm1, %xmm0 movapd .LC1(%rip), %xmm1 divpd %xmm0, %xmm1 movapd %xmm1, %xmm2 unpckhpd%xmm1, %xmm1 movapd %xmm1, %xmm0 addsd %xmm2, %xmm0 ret
[Bug c++/79624] New: comma separate auto variables deduce different types under dependent lookup
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79624 Bug ID: 79624 Summary: comma separate auto variables deduce different types under dependent lookup Product: gcc Version: 6.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: rhainin1 at binghamton dot edu Target Milestone: --- The following should fail to compile (does under clang) since auto is supposed to deduce to one type. #include #include struct Cls { int get_int() const { return {}; } std::string get_string() const { return {}; } int i_; std::string s_; }; template void deducer(T& t) { auto i = t.get_int(), s = t.get_string(); // this is invalid auto i2 = t.i_, s2 = t.s_; // this is invalid static_assert(std::is_same{}, ""); // passes static_assert(std::is_same{}, ""); //passes } int main() { Cls c; deducer(c); }
[Bug c++/79624] comma separate auto variables deduce different types under dependent lookup
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79624 --- Comment #1 from Andrew Pinski --- Maybe a dup of bug 78693 which was fixed after 6.3.0.
[Bug c++/79624] comma separate auto variables deduce different types under dependent lookup
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79624 --- Comment #2 from Andrew Pinski --- Or rather a dup of bug 59960.
[Bug c++/79624] comma separate auto variables deduce different types under dependent lookup
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79624 --- Comment #3 from Andrew Pinski --- Or PR 79009 .