diff options
author | Jason Merrill <jason@redhat.com> | 2011-01-21 13:59:40 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-01-21 13:59:40 -0500 |
commit | 0eb35d462fca8490994778c4224676388c69828e (patch) | |
tree | fbc5f59d0e99a39dd657da45d67da5466b47d042 /gcc | |
parent | ff5f50c52c421d75940ef9392211e3ab24d71332 (diff) | |
download | gcc-0eb35d462fca8490994778c4224676388c69828e.zip gcc-0eb35d462fca8490994778c4224676388c69828e.tar.gz gcc-0eb35d462fca8490994778c4224676388c69828e.tar.bz2 |
re PR c++/46552 ([C++0x] Internal compiler error on pointer to member variable with template)
PR c++/46552
* semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
From-SVN: r169099
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/constexpr-regress2.C | 13 |
4 files changed, 20 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index dcf8c49..08d7a6d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2011-01-21 Jason Merrill <jason@redhat.com> + PR c++/46552 + * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF. + PR c++/46977 * semantics.c (potential_constant_expression_1): Split out from potential_constant_expression. Add want_rval parm. Handle diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 23ff27b..fa35d4a 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -7024,6 +7024,7 @@ cxx_eval_constant_expression (const constexpr_call *call, tree t, case NON_DEPENDENT_EXPR: case BASELINK: case EXPR_STMT: + case OFFSET_REF: if (!allow_non_constant) error_at (EXPR_LOC_OR_HERE (t), "expression %qE is not a constant-expression", t); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index df43d93..09b657a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2011-01-21 Jason Merrill <jason@redhat.com> + PR c++/46552 + * g++.dg/cpp0x/constexpr-regress2.C: New. + * g++.dg/cpp0x/constexpr-stmtexpr.C: New. 2011-01-21 Jeff Law <law@redhat.com> diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-regress2.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-regress2.C new file mode 100644 index 0000000..470ee1c --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-regress2.C @@ -0,0 +1,13 @@ +// PR c++/46552 +// { dg-options -std=c++0x } + +struct S +{ + int x; +}; + +template < typename > +void f( void ) +{ + &S::x; +} |