Do not load body for alias symbols.
authorMartin Liska <mliska@suse.cz>
Wed, 5 Feb 2020 08:56:31 +0000 (09:56 +0100)
committerMartin Liska <mliska@suse.cz>
Wed, 5 Feb 2020 08:56:31 +0000 (09:56 +0100)
PR lto/93489
* lto-dump.c (dump_list_functions): Do not
load body for aliases.
(dump_body): Likewise here.

gcc/lto/ChangeLog
gcc/lto/lto-dump.c

index 2b930cb33df33c5edc578fc9cc0b833b9f82b590..1e5bab6594b2c439cdbce03d58da14b458238e7f 100644 (file)
@@ -1,3 +1,10 @@
+2020-02-05  Martin Liska  <mliska@suse.cz>
+
+       PR lto/93489
+       * lto-dump.c (dump_list_functions): Do not
+       load body for aliases.
+       (dump_body): Likewise here.
+
 2020-01-16  Martin Liska  <mliska@suse.cz>
 
        * lto-partition.c (lto_balanced_map): Remember
index 2983c22fdd57faddbe1663f2ab406203069486e6..96e26d9e81c1483c272a3c07e071789c83e58b2f 100644 (file)
@@ -122,7 +122,7 @@ public:
     cgraph_node *cnode = dyn_cast<cgraph_node *> (node);
     gcc_assert (cnode);
 
-    return (cnode->definition)
+    return (cnode->definition && !cnode->alias)
      ? n_basic_blocks_for_fn (DECL_STRUCT_FUNCTION (cnode->decl))
      : 0;
   }
@@ -157,10 +157,10 @@ void dump_list_functions (void)
   cgraph_node *cnode;
   FOR_EACH_FUNCTION (cnode)
   {
-    if (cnode->definition)
+    if (cnode->definition && !cnode->alias)
       cnode->get_untransformed_body ();
     symbol_entry *e = new function_entry (cnode);
-    if (!flag_lto_dump_defined || cnode->definition)
+    if (!flag_lto_dump_defined || (cnode->definition && !cnode->alias))
       v.safe_push (e);
   }
 
@@ -260,13 +260,15 @@ void dump_body ()
   }
   cgraph_node *cnode;
   FOR_EACH_FUNCTION (cnode)
-  if (cnode->definition && !strcmp (cnode->name (), flag_dump_body))
-  {
-    printf ("Gimple Body of Function: %s\n", cnode->name ());
-    cnode->get_untransformed_body ();
-    debug_function (cnode->decl, flags);
-    flag = 1;
-  }
+    if (cnode->definition
+       && !cnode->alias
+       && !strcmp (cnode->name (), flag_dump_body))
+      {
+       printf ("Gimple Body of Function: %s\n", cnode->name ());
+       cnode->get_untransformed_body ();
+       debug_function (cnode->decl, flags);
+       flag = 1;
+      }
   if (!flag)
     error_at (input_location, "Function not found.");
   return;