PR c++/56701 - wrong type of &*this

* typeck.c (cp_build_addr_expr_1): Remove special *this handling.

From-SVN: r239285
This commit is contained in:
Jason Merrill 2016-08-09 10:08:33 -04:00 committed by Jason Merrill
parent b87060ce92
commit 23f4e590fb
3 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2016-08-09 Jason Merrill <jason@redhat.com>
PR c++/56701
* typeck.c (cp_build_addr_expr_1): Remove special *this handling.
2016-08-09 Jakub Jelinek <jakub@redhat.com>
PR c++/72809

View File

@ -5626,11 +5626,6 @@ cp_build_addr_expr_1 (tree arg, bool strict_lvalue, tsubst_flags_t complain)
/* Let &* cancel out to simplify resulting code. */
if (INDIRECT_REF_P (arg))
{
/* We don't need to have `current_class_ptr' wrapped in a
NON_LVALUE_EXPR node. */
if (arg == current_class_ref)
return current_class_ptr;
arg = TREE_OPERAND (arg, 0);
if (TREE_CODE (TREE_TYPE (arg)) == REFERENCE_TYPE)
{

View File

@ -0,0 +1,8 @@
// PR c++/56701
// { dg-do compile { target c++11 } }
struct A
{
void f(){ A*&& a = &*this; }
};
int main(){}