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:
parent
b87060ce92
commit
23f4e590fb
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
|
8
gcc/testsuite/g++.dg/cpp0x/rv-this2.C
Normal file
8
gcc/testsuite/g++.dg/cpp0x/rv-this2.C
Normal file
@ -0,0 +1,8 @@
|
||||
// PR c++/56701
|
||||
// { dg-do compile { target c++11 } }
|
||||
|
||||
struct A
|
||||
{
|
||||
void f(){ A*&& a = &*this; }
|
||||
};
|
||||
int main(){}
|
Loading…
Reference in New Issue
Block a user