diff options
author | Jason Merrill <jason@redhat.com> | 2011-03-01 17:44:26 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-03-01 17:44:26 -0500 |
commit | faa9e9bfcaf52cd6194a1bf8f8b905a511b6e1e1 (patch) | |
tree | d0bf1a37f5acbba1ca549fdc8d2f9825edaa185a /gcc/cp | |
parent | f2ca11ca979bebcee53d00eb0ac712289d6e3e3e (diff) | |
download | gcc-faa9e9bfcaf52cd6194a1bf8f8b905a511b6e1e1.zip gcc-faa9e9bfcaf52cd6194a1bf8f8b905a511b6e1e1.tar.gz gcc-faa9e9bfcaf52cd6194a1bf8f8b905a511b6e1e1.tar.bz2 |
re PR c++/46282 ([C++0x] ICE: SIGSEGV in grokbitfield (decl2.c:1054))
PR c++/46282
* decl2.c (grokbitfield): Handle type-dependent width.
From-SVN: r170600
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d1b1b4a..ac3f4d7 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2011-03-01 Jason Merrill <jason@redhat.com> + + PR c++/46282 + * decl2.c (grokbitfield): Handle type-dependent width. + 2011-02-28 Jason Merrill <jason@redhat.com> PR c++/47873 diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 93d44a4..eb5d4f5 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -1052,7 +1052,8 @@ grokbitfield (const cp_declarator *declarator, if (width != error_mark_node) { /* The width must be an integer type. */ - if (!INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (TREE_TYPE (width))) + if (!type_dependent_expression_p (width) + && !INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (TREE_TYPE (width))) error ("width of bit-field %qD has non-integral type %qT", value, TREE_TYPE (width)); DECL_INITIAL (value) = width; |