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

Charalampos Emmanouilidis chrys.emmanouilidis at gmail.com
Thu Dec 6 08:11:19 PST 2012


##
# 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


I'm going to build current version 3.2rc3 and try again…







On Dec 6, 2012, at 3:58 PM, Jean-Daniel Dupas <devlists at shadowlab.org> wrote:

> 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/48c1ec9f/attachment.html>


More information about the cfe-dev mailing list