utils.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES
authorNathan Froyd <froydnj@codesourcery.com>
Fri, 8 Apr 2011 17:05:23 +0000 (17:05 +0000)
committerNathan Froyd <froydnj@gcc.gnu.org>
Fri, 8 Apr 2011 17:05:23 +0000 (17:05 +0000)
gcc/ada/
* gcc-interface/utils.c (handle_sentinel_attribute): Don't use
TYPE_ARG_TYPES
(handle_type_generic_attribute): Likewise.

gcc/c-family/
* c-common.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
(handle_type_generic_attribute): Likewise.

gcc/lto/
* lto-lang.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
(handle_type_generic_attribute): Likewise.

From-SVN: r172200

gcc/ada/ChangeLog
gcc/ada/gcc-interface/utils.c
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/lto/ChangeLog
gcc/lto/lto-lang.c

index 033c211fde23d0665c8d76e85d7ab72a6998055d..155256e068cee43f69880f5be58279c6c89d5d1e 100644 (file)
@@ -1,3 +1,9 @@
+2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
+       TYPE_ARG_TYPES
+       (handle_type_generic_attribute): Likewise.
+
 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR ada/47163
index dc743740cfee8356ee2e311c9c06ca5a1bdc987c..8a787893074cf0eb30a11aed84d2bccc330739ab 100644 (file)
@@ -5266,8 +5266,6 @@ static tree
 handle_sentinel_attribute (tree *node, tree name, tree args,
                           int ARG_UNUSED (flags), bool *no_add_attrs)
 {
-  tree params = TYPE_ARG_TYPES (*node);
-
   if (!prototype_p (*node))
     {
       warning (OPT_Wattributes,
@@ -5277,10 +5275,7 @@ handle_sentinel_attribute (tree *node, tree name, tree args,
     }
   else
     {
-      while (TREE_CHAIN (params))
-       params = TREE_CHAIN (params);
-
-      if (VOID_TYPE_P (TREE_VALUE (params)))
+      if (!stdarg_p (*node))
         {
          warning (OPT_Wattributes,
                   "%qs attribute only applies to variadic functions",
@@ -5400,17 +5395,11 @@ handle_type_generic_attribute (tree *node, tree ARG_UNUSED (name),
                               tree ARG_UNUSED (args), int ARG_UNUSED (flags),
                               bool * ARG_UNUSED (no_add_attrs))
 {
-  tree params;
-
   /* Ensure we have a function type.  */
   gcc_assert (TREE_CODE (*node) == FUNCTION_TYPE);
 
-  params = TYPE_ARG_TYPES (*node);
-  while (params && ! VOID_TYPE_P (TREE_VALUE (params)))
-    params = TREE_CHAIN (params);
-
   /* Ensure we have a variadic function.  */
-  gcc_assert (!params);
+  gcc_assert (!prototype_p (*node) || stdarg_p (*node));
 
   return NULL_TREE;
 }
index b859db6180e04ca72a76182b53a3b9daabde0660..af66edaf103194d8bc6fd4cd5a76dff014269d17 100644 (file)
@@ -1,3 +1,8 @@
+2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * c-common.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
+       (handle_type_generic_attribute): Likewise.
+
 2011-04-07  Jason Merrill  <jason@redhat.com>
 
        PR c++/48450
index e0acfea5ca823bb26a7b44c70a6e861d25e17001..63444b8d12980ad27d1d5328b482118771cdface 100644 (file)
@@ -7662,8 +7662,6 @@ static tree
 handle_sentinel_attribute (tree *node, tree name, tree args,
                           int ARG_UNUSED (flags), bool *no_add_attrs)
 {
-  tree params = TYPE_ARG_TYPES (*node);
-
   if (!prototype_p (*node))
     {
       warning (OPT_Wattributes,
@@ -7672,10 +7670,7 @@ handle_sentinel_attribute (tree *node, tree name, tree args,
     }
   else
     {
-      while (TREE_CHAIN (params))
-       params = TREE_CHAIN (params);
-
-      if (VOID_TYPE_P (TREE_VALUE (params)))
+      if (!stdarg_p (*node))
        {
          warning (OPT_Wattributes,
                   "%qE attribute only applies to variadic functions", name);
@@ -7714,17 +7709,11 @@ handle_type_generic_attribute (tree *node, tree ARG_UNUSED (name),
                               tree ARG_UNUSED (args), int ARG_UNUSED (flags),
                               bool * ARG_UNUSED (no_add_attrs))
 {
-  tree params;
-
   /* Ensure we have a function type.  */
   gcc_assert (TREE_CODE (*node) == FUNCTION_TYPE);
 
-  params = TYPE_ARG_TYPES (*node);
-  while (params && ! VOID_TYPE_P (TREE_VALUE (params)))
-    params = TREE_CHAIN (params);
-
   /* Ensure we have a variadic function.  */
-  gcc_assert (!params);
+  gcc_assert (!prototype_p (*node) || stdarg_p (*node));
 
   return NULL_TREE;
 }
index 00f695f00ee2b124ce67b095a405b48e3e0909bd..56bf3f5b4e1429bc463e566b2c59275c14496f69 100644 (file)
@@ -1,3 +1,8 @@
+2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * lto-lang.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
+       (handle_type_generic_attribute): Likewise.
+
 2011-04-03  Michael Matz  <matz@suse.de>
 
        * lto.c (lto_materialize_function): Don't read and then discard
index 535fc584f9009676817da4a2cf1eb033ad91772e..c65d916c14c8560cf38dddb4b67eb7879f91f107 100644 (file)
@@ -373,13 +373,7 @@ handle_sentinel_attribute (tree *node, tree ARG_UNUSED (name), tree args,
                           int ARG_UNUSED (flags),
                           bool * ARG_UNUSED (no_add_attrs))
 {
-  tree params = TYPE_ARG_TYPES (*node);
-  gcc_assert (params);
-
-  while (TREE_CHAIN (params))
-    params = TREE_CHAIN (params);
-
-  gcc_assert (!VOID_TYPE_P (TREE_VALUE (params)));
+  gcc_assert (stdarg_p (*node));
 
   if (args)
     {
@@ -399,17 +393,11 @@ handle_type_generic_attribute (tree *node, tree ARG_UNUSED (name),
                               tree ARG_UNUSED (args), int ARG_UNUSED (flags),
                               bool * ARG_UNUSED (no_add_attrs))
 {
-  tree params;
-  
   /* Ensure we have a function type.  */
   gcc_assert (TREE_CODE (*node) == FUNCTION_TYPE);
   
-  params = TYPE_ARG_TYPES (*node);
-  while (params && ! VOID_TYPE_P (TREE_VALUE (params)))
-    params = TREE_CHAIN (params);
-
   /* Ensure we have a variadic function.  */
-  gcc_assert (!params);
+  gcc_assert (!prototype_p (*node) || stdarg_p (*node));
 
   return NULL_TREE;
 }