OSDN Git Service

PR c++/49134
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 6 Jun 2011 04:16:38 +0000 (04:16 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 6 Jun 2011 04:16:38 +0000 (04:16 +0000)
* tree.c (build_target_expr): Deal with ARM ABI tweaks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174682 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/tree.c

index 48f39f4..668dd5e 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/49134
+       * tree.c (build_target_expr): Deal with ARM ABI tweaks.
+
 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
        * init.c (build_delete): Warn when deleting type with non-virtual
index 11e195e..025fe2d 100644 (file)
@@ -292,6 +292,9 @@ build_target_expr (tree decl, tree value, tsubst_flags_t complain)
 #ifdef ENABLE_CHECKING
   gcc_assert (VOID_TYPE_P (TREE_TYPE (value))
              || TREE_TYPE (decl) == TREE_TYPE (value)
+             /* On ARM ctors return 'this'.  */
+             || (TREE_CODE (TREE_TYPE (value)) == POINTER_TYPE
+                 && TREE_CODE (value) == CALL_EXPR)
              || useless_type_conversion_p (TREE_TYPE (decl),
                                            TREE_TYPE (value)));
 #endif