zlaski 02/08/28 11:24:32
Modified: gcc builtins.c
Added: gcc/testsuite/gcc.dg const-cfstring-2.c
Log:
Give a graceful error message when attempting to use constant CFStrings
without the '-fconstant-cfstrings' flag.
Bug #: 3016169, 3021042
Submitted by: zlaski
Reviewed by: shebs
Revision Changes Path
1.28 +7 -0 gcc3/gcc/builtins.c
Index: builtins.c
===================================================================
RCS file: /cvs/Darwin/gcc3/gcc/builtins.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- builtins.c 2002/08/26 05:39:26 1.27
+++ builtins.c 2002/08/28 18:24:31 1.28
@@ -4172,6 +4172,13 @@
/* APPLE LOCAL begin constant cfstrings */
case BUILT_IN___CFSTRINGMAKECONSTANTSTRING:
+ /* This may only be used in conjunction with '-fconstant-cfstrings'. */
+ if (!flag_constant_cfstrings)
+ {
+ error ("built-in function `%s' requires `-fconstant-cfstrings' flag",
+ IDENTIFIER_POINTER (DECL_NAME (fndecl)));
+ return error_mark_node;
+ }
if (validate_arglist (arglist, POINTER_TYPE, VOID_TYPE))
{
tree offset_node;
1.1 gcc3/gcc/testsuite/gcc.dg/const-cfstring-2.c
Index: const-cfstring-2.c
===================================================================
/* APPLE LOCAL file constant cfstrings */
/* Test whether the __builtin__CFStringMakeConstantString
"function" fails gracefully when used without the
-fconstant-cfstrings flag. */
/* Developed by Ziemowit Laski <[EMAIL PROTECTED]>. */
/* { dg-options "-fno-constant-cfstrings" } */
/* { dg-do compile { target *-*-darwin* } } */
#include <CoreFoundation/CFBase.h>
const CFStringRef S =
((CFStringRef)__builtin___CFStringMakeConstantString("Testing"));
/* { dg-error "built-in" "built-in function .* requires .* flag" { target *-*-* } 12
} */