[cfe-dev] Objective-C Boxed Expressions Error: unexpected '@' in program

Jean-Daniel Dupas devlists at shadowlab.org
Thu Dec 6 06:58:08 PST 2012


Look like you're using an old clang version.

What clang --version reports ? 


Le 5 déc. 2012 à 18:47, Charalampos Emmanouilidis <chrys.emmanouilidis at gmail.com> a écrit :

> Tried both compile flags as you suggested:
> 
> 
> #-fobjc-nonfragile-abi
> charemma$ clang  -x objective-c -I/opt/GNUstep/include -fobjc-nonfragile-abi -o main.c.o  -c main.c
> main.c:10:22: error: unexpected '@' in program
>     NSString *path = @(getenv("PATH"));
>                      ^
> 1 error generated.
> 
> 
> 
> # -fobjc-runtime=gnustep, please note, this flag is not even recognized
> charemma$ clang  -x objective-c -I/opt/GNUstep/include -fobjc-runtime=gnustep -o main.c.o  -c main.c
> clang: warning: argument unused during compilation: '-fobjc-runtime=gnustep'
> main.c:10:22: error: unexpected '@' in program
>     NSString *path = @(getenv("PATH"));
>                      ^
> 1 error generated.
> 
> 
> 
> 
> 
> 
> 
> On Dec 4, 2012, at 10:04 AM, David Chisnall <David.Chisnall at cl.cam.ac.uk> wrote:
> 
>> The new syntax is only supported with the non-fragile ABI.  Please add either -fobjc-nonfragile-abi or -fobjc-runtime=gnustep to your compile flags.
>> 
>> The new ABI is the default on *BSD, however clang defaults to the GCC ABI on GNU platforms for greater compatibility with legacy Objective-C implementations.
>> 
>> David
>> 
>> On 4 Dec 2012, at 06:05, Charalampos Chrysovalantis Emmanouilidis wrote:
>> 
>>> I'm trying to compile some Boxed Expressions with clang 3.1
>>> 
>>> ##
>>> # Clang Version
>>> ##
>>> charemma $ clang --version 
>>> Debian clang version 3.1-5ppa1 (branches/release_31) (based on LLVM 3.1)
>>> Target: i386-pc-linux-gnu
>>> Thread model: posix
>>> 
>>> ##
>>> # Sample code in main.c
>>> ##
>>> NSString *path = @(getenv("PATH"));
>>> NSLog(@"PATH %@", path);
>>> 
>>> 
>>> ##
>>> # compiler usage
>>> ##
>>> charemma$ clang  -x objective-c -I/opt/GNUstep/include  -o main.c.o  -c main.c
>>> main.c:10:22: error: unexpected '@' in program
>>>    NSString *path = @(getenv("PATH"));
>>>                     ^
>>> 1 error generated.
>>> 
>>> Do I need to pass any specific flag to clang to get support for Boxed Expressions like @(getenv("PATH"))?
>>> 
>>> According to this article http://clang.llvm.org/docs/ObjectiveCLiterals.html this should be supported starting with clang v3.1
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>> 
> 
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

-- Jean-Daniel




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20121206/dc848d60/attachment.html>


More information about the cfe-dev mailing list