typeck.c (convert_arguments): Don't do ellipsis conversion for __built_in_constant_p.
authorAndrew Haley <aph@redhat.com>
Tue, 6 Mar 2001 14:56:04 +0000 (14:56 +0000)
committerAndrew Haley <aph@gcc.gnu.org>
Tue, 6 Mar 2001 14:56:04 +0000 (14:56 +0000)
2001-03-05  Andrew Haley  <aph@redhat.com>

        * typeck.c (convert_arguments): Don't do ellipsis conversion for
        __built_in_constant_p.

From-SVN: r40263

gcc/cp/ChangeLog
gcc/cp/typeck.c

index 389b9fc..04671bd 100644 (file)
@@ -1,3 +1,8 @@
+2001-03-05  Andrew Haley  <aph@redhat.com>
+
+       * typeck.c (convert_arguments): Don't do ellipsis conversion for
+       __built_in_constant_p.
+
 2001-03-02  Nathan Sidwell  <nathan@codesourcery.com>
 
        * typeck.c (build_static_cast): Allow enum to enum conversions
index 8b87342..d572182 100644 (file)
@@ -3207,9 +3207,16 @@ convert_arguments (typelist, values, fndecl, flags)
          if (TREE_CODE (TREE_TYPE (val)) == REFERENCE_TYPE)
            val = convert_from_reference (val);
 
-         result = tree_cons (NULL_TREE,
-                                  convert_arg_to_ellipsis (val),
-                                  result);
+         if (DECL_BUILT_IN (fndecl)
+             && DECL_FUNCTION_CODE (fndecl) == BUILT_IN_CONSTANT_P)
+           /* Don't do ellipsis conversion for __built_in_constant_p
+              as this will result in spurious warnings for non-POD
+              types.  */
+           val = require_complete_type (val);
+         else
+           val = convert_arg_to_ellipsis (val);
+
+         result = tree_cons (NULL_TREE, val, result);
        }
 
       if (typetail)