re PR c++/52672 (internal compiler error: in cxx_eval_indirect_ref, at cp/semantics.c:6766)
PR c++/52672 * gcc/cp/semantics.c (cxx_fold_indirect_ref): Don't attempt to fold stripped child trees that are not pointer types. From-SVN: r185890
This commit is contained in:
parent
ab7ea426a3
commit
9a1cb58a99
4 changed files with 21 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2012-03-27 Meador Inge <meadori@codesourcery.com>
|
||||
|
||||
PR c++/52672
|
||||
* semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
|
||||
stripped child trees that are not pointer types.
|
||||
|
||||
2012-03-21 Jason Merrill <jason@redhat.com>
|
||||
|
||||
Implement return type deduction for normal functions with -std=c++1y.
|
||||
|
|
|
@ -7202,7 +7202,8 @@ cxx_fold_indirect_ref (location_t loc, tree type, tree op0, bool *empty_base)
|
|||
sub = op0;
|
||||
STRIP_NOPS (sub);
|
||||
subtype = TREE_TYPE (sub);
|
||||
gcc_assert (POINTER_TYPE_P (subtype));
|
||||
if (!POINTER_TYPE_P (subtype))
|
||||
return NULL_TREE;
|
||||
|
||||
if (TREE_CODE (sub) == ADDR_EXPR)
|
||||
{
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2012-03-27 Meador Inge <meadori@codesourcery.com>
|
||||
|
||||
PR c++/52672
|
||||
* g++.dg/cpp0x/constexpr-52672.C: New testcase.
|
||||
|
||||
2012-03-27 Mike Stump <mikestump@comcast.net>
|
||||
|
||||
PR target/52665
|
||||
|
|
8
gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C
Normal file
8
gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C
Normal file
|
@ -0,0 +1,8 @@
|
|||
// PR c++/52672
|
||||
// { dg-do compile }
|
||||
// { dg-options "-std=c++11" }
|
||||
|
||||
typedef unsigned long * ul_ptr;
|
||||
constexpr unsigned long a = *((ul_ptr)0x0); // { dg-error "" }
|
||||
constexpr unsigned long b = *((ul_ptr)(*((ul_ptr)0x0))); // { dg-error "" }
|
||||
constexpr unsigned long c = *((ul_ptr)*((ul_ptr)(*((ul_ptr)0x0)))); // { dg-error "" }
|
Loading…
Add table
Reference in a new issue