(expand_builtin, case BUILT_IN_CONSTANT_P): A pointer to a string
authorRichard Kenner <kenner@gcc.gnu.org>
Wed, 26 Apr 1995 16:29:48 +0000 (12:29 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 26 Apr 1995 16:29:48 +0000 (12:29 -0400)
constant is a constant.

From-SVN: r9475

gcc/expr.c

index 04e5442e2c5aa43d7e9d78ef975ccaf282368370..818618927ca854fc9acb29dcfe8bd308fd59de52 100644 (file)
@@ -7505,8 +7505,15 @@ expand_builtin (exp, target, subtarget, mode, ignore)
       if (arglist == 0)
        return const0_rtx;
       else
-       return (TREE_CODE_CLASS (TREE_CODE (TREE_VALUE (arglist))) == 'c'
-               ? const1_rtx : const0_rtx);
+       {
+         tree arg = TREE_VALUE (arglist);
+
+         STRIP_NOPS (arg);
+         return (TREE_CODE_CLASS (TREE_CODE (arg)) == 'c'
+                 || (TREE_CODE (arg) == ADDR_EXPR
+                     && TREE_CODE (TREE_OPERAND (arg, 0)) == STRING_CST)
+                 ? const1_rtx : const0_rtx);
+       }
 
     case BUILT_IN_FRAME_ADDRESS:
       /* The argument must be a nonnegative integer constant.