[Bug c++/58705] [4.7/4.8/4.9 Regression] [c++11] ICE with invalid initializer for _Complex variable

2013-10-24 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58705

--- Comment #6 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Thu Oct 24 13:54:00 2013
New Revision: 204014

URL: http://gcc.gnu.org/viewcvs?rev=204014root=gccview=rev
Log:
PR c++/58705
cp/
* typeck2.c (check_narrowing): Don't check narrowing when the scalar
initializer is empty.
testsuite/
* g++.dg/parse/pr58705.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/parse/pr58705.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck2.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/58705] [4.7/4.8/4.9 Regression] [c++11] ICE with invalid initializer for _Complex variable

2013-10-24 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58705

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Marek Polacek mpolacek at gcc dot gnu.org ---
Fixed.


[Bug c++/58705] [4.7/4.8/4.9 Regression] [c++11] ICE with invalid initializer for _Complex variable

2013-10-14 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58705

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-10-14
 CC||mpolacek at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org ---
Confirmed.


[Bug c++/58705] [4.7/4.8/4.9 Regression] [c++11] ICE with invalid initializer for _Complex variable

2013-10-14 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58705

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
This will ICE even with -std=c++03 -Wnarrowing.


[Bug c++/58705] [4.7/4.8/4.9 Regression] [c++11] ICE with invalid initializer for _Complex variable

2013-10-14 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58705

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
This will fix the ICE, but perhaps we want to give an error instead...
I'll regtest this and post to ML.

--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -833,7 +833,8 @@ check_narrowing (tree type, tree init)
TREE_CODE (type) == COMPLEX_TYPE)
 {
   tree elttype = TREE_TYPE (type);
-  check_narrowing (elttype, CONSTRUCTOR_ELT (init, 0)-value);
+  if (CONSTRUCTOR_NELTS (init)  0)
+check_narrowing (elttype, CONSTRUCTOR_ELT (init, 0)-value);
   if (CONSTRUCTOR_NELTS (init)  1)
check_narrowing (elttype, CONSTRUCTOR_ELT (init, 1)-value);
   return;


[Bug c++/58705] [4.7/4.8/4.9 Regression] [c++11] ICE with invalid initializer for _Complex variable

2013-10-14 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58705

--- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org ---
(In reply to Marek Polacek from comment #3)
 This will fix the ICE, but perhaps we want to give an error instead...

IMNSHO we want, as C FE does:

58705.C:1:1: error: empty scalar initializer
58705.C:1:1: error: (near initialization for ‘f’)

Will put that in the patch.

[Bug c++/58705] [4.7/4.8/4.9 Regression] [c++11] ICE with invalid initializer for _Complex variable

2013-10-12 Thread reichelt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58705

Volker Reichelt reichelt at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
  Known to work||4.6.0
   Target Milestone|--- |4.7.4
  Known to fail||4.7.0, 4.8.0, 4.9.0