[Bug tree-optimization/79594] New: -Waggressive-loop-optimizations incomplete and/or inconsistentt

2017-02-19 Thread vincenzo.innocente at cern dot ch
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

2017-02-19 Thread redi at gcc dot gnu.org
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

2017-02-19 Thread redi at gcc dot gnu.org
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'

2017-02-19 Thread dominiq at gcc dot gnu.org
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'

2017-02-19 Thread dominiq at lps dot ens.fr
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

2017-02-19 Thread paolo at gcc dot gnu.org
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)

2017-02-19 Thread vehre at gcc dot gnu.org
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

2017-02-19 Thread pault at gcc dot gnu.org
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

2017-02-19 Thread vehre at gcc dot gnu.org
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

2017-02-19 Thread vehre at gcc dot gnu.org
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)

2017-02-19 Thread vehre at gcc dot gnu.org
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"

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread roland.illig at gmx dot de
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 %

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread contact at ncomputers dot org
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

2017-02-19 Thread pault at gcc dot gnu.org
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"

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread smal.root at gmail dot com
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

2017-02-19 Thread smal.root at gmail dot com
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

2017-02-19 Thread smal.root at gmail dot com
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

2017-02-19 Thread smal.root at gmail dot com
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread msebor at gcc dot gnu.org
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

2017-02-19 Thread msebor at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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'

2017-02-19 Thread ubizjak at gmail dot com
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)

2017-02-19 Thread dave.anglin at bell dot net
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread reichelt at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread paolo.carlini at oracle dot com
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)

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread reichelt at gcc dot gnu.org
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

2017-02-19 Thread reichelt at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jakub at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jakub at gcc dot gnu.org
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

2017-02-19 Thread jakub at gcc dot gnu.org
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

2017-02-19 Thread redi at gcc dot gnu.org
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

2017-02-19 Thread jakub at gcc dot gnu.org
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"

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread smal.root at gmail dot com
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__

2017-02-19 Thread roland at gnu dot org
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

2017-02-19 Thread jason at gcc dot gnu.org
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__

2017-02-19 Thread roland at gnu dot org
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread pinskia at gcc dot gnu.org
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread pinskia at gcc dot gnu.org
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread redi at gcc dot gnu.org
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

2017-02-19 Thread redi at gcc dot gnu.org
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

2017-02-19 Thread redi at gcc dot gnu.org
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread roland.illig at gmx dot de
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

2017-02-19 Thread roland at gnu dot org
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

2017-02-19 Thread pinskia at gcc dot gnu.org
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

2017-02-19 Thread andrew.n.sutton at gmail dot com
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

2017-02-19 Thread lh_mouse at 126 dot com
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

2017-02-19 Thread asolokha at gmx dot com
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

2017-02-19 Thread asolokha at gmx dot com
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

2017-02-19 Thread jason at gcc dot gnu.org
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)

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread sbansal at ciena dot com
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

2017-02-19 Thread jason at gcc dot gnu.org
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)

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread jason at gcc dot gnu.org
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

2017-02-19 Thread juergen.reuter at desy dot de
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

2017-02-19 Thread tkoenig at gcc dot gnu.org
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

2017-02-19 Thread rhainin1 at binghamton dot edu
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

2017-02-19 Thread pinskia at gcc dot gnu.org
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

2017-02-19 Thread pinskia at gcc dot gnu.org
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

2017-02-19 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79624

--- Comment #3 from Andrew Pinski  ---
Or PR 79009 .