mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-11 01:30:55 +08:00
Fix PR c++/70204 (ICE in non_const_var_error)
gcc/cp/ChangeLog: PR c++/70204 * constexpr.c (non_const_var_error): Check DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. gcc/testsuite/ChangeLog: PR c++/70204 * g++.dg/cpp0x/constexpr-70204a.C: New test. * g++.dg/cpp0x/constexpr-70204b.C: New test. From-SVN: r234390
This commit is contained in:
parent
b9bcad15fb
commit
a3e2b43831
@ -1,3 +1,9 @@
|
||||
2016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
|
||||
|
||||
PR c++/70204
|
||||
* constexpr.c (non_const_var_error): Check
|
||||
DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
|
||||
|
||||
2016-03-21 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR c++/70273
|
||||
|
@ -2763,7 +2763,8 @@ non_const_var_error (tree r)
|
||||
inform (DECL_SOURCE_LOCATION (r),
|
||||
"%q#D is volatile", r);
|
||||
else if (!DECL_INITIAL (r)
|
||||
|| !TREE_CONSTANT (DECL_INITIAL (r)))
|
||||
|| !TREE_CONSTANT (DECL_INITIAL (r))
|
||||
|| !DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (r))
|
||||
inform (DECL_SOURCE_LOCATION (r),
|
||||
"%qD was not initialized with a constant "
|
||||
"expression", r);
|
||||
|
@ -1,3 +1,9 @@
|
||||
2016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
|
||||
|
||||
PR c++/70204
|
||||
* g++.dg/cpp0x/constexpr-70204a.C: New test.
|
||||
* g++.dg/cpp0x/constexpr-70204b.C: New test.
|
||||
|
||||
2016-03-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/70326
|
||||
|
18
gcc/testsuite/g++.dg/cpp0x/constexpr-70204a.C
Normal file
18
gcc/testsuite/g++.dg/cpp0x/constexpr-70204a.C
Normal file
@ -0,0 +1,18 @@
|
||||
// PR c++/70204
|
||||
// { dg-do compile { target c++11 } }
|
||||
|
||||
int a;
|
||||
|
||||
template < int N, int I >
|
||||
void fn1 ()
|
||||
{
|
||||
const int x = I * a, y = x;
|
||||
fn1 < y, I > (); // { dg-error "constant|no match" }
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
fn1 < 0, 0 > ();
|
||||
return 0;
|
||||
}
|
10
gcc/testsuite/g++.dg/cpp0x/constexpr-70204b.C
Normal file
10
gcc/testsuite/g++.dg/cpp0x/constexpr-70204b.C
Normal file
@ -0,0 +1,10 @@
|
||||
// PR c++/70204
|
||||
// { dg-do compile { target c++11 } }
|
||||
|
||||
int a;
|
||||
|
||||
void fn1 ()
|
||||
{
|
||||
const int x = 0 * a;
|
||||
constexpr int y = x; // { dg-error "constant" }
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user