re PR c++/23357 (ICE with __alignof__ on template arguments)
PR c++/23357 * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to tcc_expression. From-SVN: r104340
This commit is contained in:
parent
07af06f6a3
commit
0161fcff94
3 changed files with 15 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2005-09-15 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/23357
|
||||
* cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
|
||||
tcc_expression.
|
||||
|
||||
2005-09-15 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/23896
|
||||
|
|
|
@ -324,14 +324,14 @@ DEFTREECODE (TINST_LEVEL, "TINST_LEVEL", tcc_exceptional, 0)
|
|||
DEFTREECODE (OFFSETOF_EXPR, "offsetof_expr", tcc_expression, 1)
|
||||
|
||||
/* Represents a 'sizeof' expression during template expansion. */
|
||||
DEFTREECODE (SIZEOF_EXPR, "sizeof_expr", tcc_unary, 1)
|
||||
DEFTREECODE (SIZEOF_EXPR, "sizeof_expr", tcc_expression, 1)
|
||||
|
||||
/* Represents the -> operator during template expansion. */
|
||||
DEFTREECODE (ARROW_EXPR, "arrow_expr", tcc_expression, 1)
|
||||
|
||||
/* Represents an '__alignof__' expression during template
|
||||
expansion. */
|
||||
DEFTREECODE (ALIGNOF_EXPR, "alignof_expr", tcc_unary, 1)
|
||||
DEFTREECODE (ALIGNOF_EXPR, "alignof_expr", tcc_expression, 1)
|
||||
|
||||
/* A STMT_EXPR represents a statement-expression during template
|
||||
expansion. This is the GCC extension { ( ... ) }. The
|
||||
|
|
7
gcc/testsuite/g++.dg/template/sizeof10.C
Normal file
7
gcc/testsuite/g++.dg/template/sizeof10.C
Normal file
|
@ -0,0 +1,7 @@
|
|||
// PR c++/23357
|
||||
|
||||
template<typename T> bool foo()
|
||||
{
|
||||
const long int i = sizeof(T) > 1 ? sizeof(T) : 0;
|
||||
return i > 0;
|
||||
}
|
Loading…
Add table
Reference in a new issue