diff options
Diffstat (limited to 'gcc/cp/rtti.c')
| -rw-r--r-- | gcc/cp/rtti.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c index 0275ed9..5c6d38d 100644 --- a/gcc/cp/rtti.c +++ b/gcc/cp/rtti.c @@ -513,10 +513,7 @@ build_dynamic_cast_1 (tree type, tree expr) } else { - /* Apply trivial conversion T -> T& for dereferenced ptrs. */ exprtype = build_reference_type (exprtype); - expr = convert_to_reference (exprtype, expr, CONV_IMPLICIT, - LOOKUP_NORMAL, NULL_TREE); /* T is a reference type, v shall be an lvalue of a complete class type, and the result is an lvalue of the type referred to by T. */ @@ -532,6 +529,9 @@ build_dynamic_cast_1 (tree type, tree expr) goto fail; } + /* Apply trivial conversion T -> T& for dereferenced ptrs. */ + expr = convert_to_reference (exprtype, expr, CONV_IMPLICIT, + LOOKUP_NORMAL, NULL_TREE); } /* The dynamic_cast operator shall not cast away constness. */ |
