aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/rtti.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/rtti.c')
-rw-r--r--gcc/cp/rtti.c6
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. */