Make dumping of function attributes resemble source syntax
authorTom de Vries <tom@codesourcery.com>
Thu, 1 Oct 2015 05:42:50 +0000 (05:42 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Thu, 1 Oct 2015 05:42:50 +0000 (05:42 +0000)
2015-10-01  Tom de Vries  <tom@codesourcery.com>

* tree-cfg.c (dump_function_to_file): Dump function attributes using
__attribute__(()) string.  Move dumping of function attributes to before
function name.

From-SVN: r228315

gcc/ChangeLog
gcc/tree-cfg.c

index c8200dbff5c2be7fca1c4987e9fe017e7c89ad1f..c132980b9f463293fdddd52cf49bfc2b24efe140 100644 (file)
@@ -1,3 +1,9 @@
+2015-10-01  Tom de Vries  <tom@codesourcery.com>
+
+       * tree-cfg.c (dump_function_to_file): Dump function attributes using
+       __attribute__(()) string.  Move dumping of function attributes to before
+       function name.
+
 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
 
        PR target/66870
index e06ee28ab7928b3a3f8c2f5471eb3e09f3fb531a..735ac463851b43290c63b9afc4a6d530834e7e5f 100644 (file)
@@ -72,6 +72,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-cfgcleanup.h"
 #include "wide-int-print.h"
 #include "gimplify.h"
+#include "attribs.h"
 
 /* This file contains functions for building the Control Flow Graph (CFG)
    for a function tree.  */
@@ -7352,6 +7353,30 @@ dump_function_to_file (tree fndecl, FILE *file, int flags)
                  && decl_is_tm_clone (fndecl));
   struct function *fun = DECL_STRUCT_FUNCTION (fndecl);
 
+  if (DECL_ATTRIBUTES (fndecl) != NULL_TREE)
+    {
+      fprintf (file, "__attribute__((");
+
+      bool first = true;
+      tree chain;
+      for (chain = DECL_ATTRIBUTES (fndecl); chain;
+          first = false, chain = TREE_CHAIN (chain))
+       {
+         if (!first)
+           fprintf (file, ", ");
+
+         print_generic_expr (file, get_attribute_name (chain), dump_flags);
+         if (TREE_VALUE (chain) != NULL_TREE)
+           {
+             fprintf (file, " (");
+             print_generic_expr (file, TREE_VALUE (chain), dump_flags);
+             fprintf (file, ")");
+           }
+       }
+
+      fprintf (file, "))\n");
+    }
+
   current_function_decl = fndecl;
   fprintf (file, "%s %s(", function_name (fun), tmclone ? "[tm-clone] " : "");
 
@@ -7369,13 +7394,6 @@ dump_function_to_file (tree fndecl, FILE *file, int flags)
     }
   fprintf (file, ")\n");
 
-  if (DECL_ATTRIBUTES (fndecl) != NULL_TREE)
-    {
-      fprintf (file, "[ ");
-      print_generic_expr (file, DECL_ATTRIBUTES (fndecl), dump_flags);
-      fprintf (file, "]\n");
-    }
-
   if (flags & TDF_VERBOSE)
     print_node (file, "", fndecl, 2);