class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of cgraph_get_create_node.
authorMartin Jambor <mjambor@suse.cz>
Tue, 12 Apr 2011 10:02:31 +0000 (12:02 +0200)
committerMartin Jambor <jamborm@gcc.gnu.org>
Tue, 12 Apr 2011 10:02:31 +0000 (12:02 +0200)
2011-04-12  Martin Jambor  <mjambor@suse.cz>

gcc/cp/
* class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
cgraph_get_create_node.
* decl2.c (cp_write_global_declarations): Call cgraph_get_node
instead of cgraph_get_create_node.
* method.c (make_alias_for_thunk): Call cgraph_get_node
instead of cgraph_get_create_node, assert it returns non-NULL.
(use_thunk): Likewise.
* optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
when flag_syntax_only is not set.  Call cgraph_get_node instead of
cgraph_get_create_node.
(maybe_clone_body): Call cgraph_get_node instead of
cgraph_get_create_node.

From-SVN: r172308

gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/decl2.c
gcc/cp/method.c
gcc/cp/optimize.c

index f9c0fb2a2e0e6a4d2f889e1fe935b0c5b80fb14a..f6dbddce6eea79cce15cf09d9efd408a87af7ce0 100644 (file)
@@ -1,3 +1,18 @@
+2011-04-12  Martin Jambor  <mjambor@suse.cz>
+
+       * class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
+       cgraph_get_create_node.
+       * decl2.c (cp_write_global_declarations): Call cgraph_get_node
+       instead of cgraph_get_create_node.
+       * method.c (make_alias_for_thunk): Call cgraph_get_node
+       instead of cgraph_get_create_node, assert it returns non-NULL.
+       (use_thunk): Likewise.
+       * optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
+       when flag_syntax_only is not set.  Call cgraph_get_node instead of
+       cgraph_get_create_node.
+       (maybe_clone_body): Call cgraph_get_node instead of
+       cgraph_get_create_node.
+
 2011-04-12  Martin Jambor  <mjambor@suse.cz>
 
        * class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
index 634b2bf4a498ac4487646033c55774988aa6f90f..b6aebaeba22f980f5545d930003a65087b9236a6 100644 (file)
@@ -8401,7 +8401,7 @@ cp_fold_obj_type_ref (tree ref, tree known_type)
                                  DECL_VINDEX (fndecl)));
 #endif
 
-  cgraph_get_create_node (fndecl)->local.vtable_method = true;
+  cgraph_get_node (fndecl)->local.vtable_method = true;
 
   return build_address (fndecl);
 }
index 9e63c871dafd3a0a69b04f546f02e9a48ba82188..5b6f6edf3afc5193ea51556a95a54df22895cb3e 100644 (file)
@@ -3893,7 +3893,7 @@ cp_write_global_declarations (void)
          if (!DECL_EXTERNAL (decl)
              && decl_needed_p (decl)
              && !TREE_ASM_WRITTEN (decl)
-             && !cgraph_get_create_node (decl)->local.finalized)
+             && !cgraph_get_node (decl)->local.finalized)
            {
              /* We will output the function; no longer consider it in this
                 loop.  */
index e18143e2b9e6d670add3e278425fa1c8f28e641c..6b268067cc028ea0c00e04cd85b21efdf452f555 100644 (file)
@@ -259,9 +259,10 @@ make_alias_for_thunk (tree function)
 
   if (!flag_syntax_only)
     {
-      struct cgraph_node *aliasn;
-      aliasn = cgraph_same_body_alias (cgraph_get_create_node (function),
-                                      alias, function);
+      struct cgraph_node *funcn, *aliasn;
+      funcn = cgraph_get_node (function);
+      gcc_checking_assert (funcn);
+      aliasn = cgraph_same_body_alias (funcn, alias, function);
       DECL_ASSEMBLER_NAME (function);
       gcc_assert (aliasn != NULL);
     }
@@ -280,6 +281,7 @@ use_thunk (tree thunk_fndecl, bool emit_p)
   tree virtual_offset;
   HOST_WIDE_INT fixed_offset, virtual_value;
   bool this_adjusting = DECL_THIS_THUNK_P (thunk_fndecl);
+  struct cgraph_node *funcn;
 
   /* We should have called finish_thunk to give it a name.  */
   gcc_assert (DECL_NAME (thunk_fndecl));
@@ -379,7 +381,9 @@ use_thunk (tree thunk_fndecl, bool emit_p)
   a = nreverse (t);
   DECL_ARGUMENTS (thunk_fndecl) = a;
   TREE_ASM_WRITTEN (thunk_fndecl) = 1;
-  cgraph_add_thunk (cgraph_get_create_node (function), thunk_fndecl, function,
+  funcn = cgraph_get_node (function);
+  gcc_checking_assert (funcn);
+  cgraph_add_thunk (funcn, thunk_fndecl, function,
                    this_adjusting, fixed_offset, virtual_value,
                    virtual_offset, alias);
 
index 2110779a04b0b4824bed37bae734982aed0cac8f..87302dc933d7f71645ffd7d774fdb676a85a0ca3 100644 (file)
@@ -309,8 +309,9 @@ maybe_clone_body (tree fn)
          && (!DECL_ONE_ONLY (fns[0])
              || (HAVE_COMDAT_GROUP
                  && DECL_WEAK (fns[0])))
-         && cgraph_same_body_alias (cgraph_get_create_node (fns[0]), clone,
-                                    fns[0]))
+         && (flag_syntax_only
+             || cgraph_same_body_alias (cgraph_get_node (fns[0]), clone,
+                                        fns[0])))
        {
          alias = true;
          if (DECL_ONE_ONLY (fns[0]))
@@ -424,8 +425,8 @@ maybe_clone_body (tree fn)
          /* If *[CD][12]* dtors go into the *[CD]5* comdat group and dtor is
             virtual, it goes into the same comdat group as well.  */
          DECL_COMDAT_GROUP (fns[2]) = comdat_group;
-         base_dtor_node = cgraph_get_create_node (fns[0]);
-         deleting_dtor_node = cgraph_get_create_node (fns[2]);
+         base_dtor_node = cgraph_get_node (fns[0]);
+         deleting_dtor_node = cgraph_get_node (fns[2]);
          gcc_assert (base_dtor_node->same_comdat_group == NULL);
          gcc_assert (deleting_dtor_node->same_comdat_group == NULL);
          base_dtor_node->same_comdat_group = deleting_dtor_node;