PR c++/84665 - ICE with array of empty class.
* decl2.c (cp_check_const_attributes): Use fold_non_dependent_expr. From-SVN: r259132
This commit is contained in:
parent
4cbe585c99
commit
68218b64ed
3 changed files with 14 additions and 1 deletions
|
@ -1,5 +1,8 @@
|
|||
2018-04-05 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/84665 - ICE with array of empty class.
|
||||
* decl2.c (cp_check_const_attributes): Use fold_non_dependent_expr.
|
||||
|
||||
PR c++/85228 - ICE with lambda in enumerator in template.
|
||||
* pt.c (bt_instantiate_type_proc): Don't assume
|
||||
CLASSTYPE_TEMPLATE_INFO is non-null.
|
||||
|
|
|
@ -1416,7 +1416,7 @@ cp_check_const_attributes (tree attributes)
|
|||
{
|
||||
tree expr = TREE_VALUE (arg);
|
||||
if (EXPR_P (expr))
|
||||
TREE_VALUE (arg) = maybe_constant_value (expr);
|
||||
TREE_VALUE (arg) = fold_non_dependent_expr (expr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
10
gcc/testsuite/g++.dg/ext/attr-noinline-4.C
Normal file
10
gcc/testsuite/g++.dg/ext/attr-noinline-4.C
Normal file
|
@ -0,0 +1,10 @@
|
|||
// PR c++/84665
|
||||
|
||||
struct S {} a[1];
|
||||
|
||||
template <int N>
|
||||
void
|
||||
foo ()
|
||||
{
|
||||
__attribute__ ((noinline (a[0]))) int c = 0; // { dg-error "wrong number of arguments" }
|
||||
}
|
Loading…
Add table
Reference in a new issue