[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Slightly odd behaviour with enumerateObjectsUsingBlock:
From: |
David Chisnall |
Subject: |
Re: Slightly odd behaviour with enumerateObjectsUsingBlock: |
Date: |
Wed, 2 Mar 2011 14:45:41 +0000 |
On 2 Mar 2011, at 12:57, Thomas Davie wrote:
>
> On 2 Mar 2011, at 12:36, David Chisnall wrote:
>
>> On 28 Feb 2011, at 14:24, Thomas Davie wrote:
>>
>>> Certain, a make clean, and make messages=yes reveals clang is being called
>>> with -fblocks, and I still get the log output after a fresh make install.
>>
>> Can you try adding -E to the OBJCFLAGS and see what the preprocessed output
>> is showing for your NSArray.h?
>>
>> The type for the argument is GSEnumeratorBlock. If you have compiled with
>> blocks support, then this should be a typedef for a block type. If you have
>> compiled without, then it is a pointer to a structure type.
>>
>> The fact that you're getting @? for the caller implies that it's generating
>> the correct type encoding when you call the block, so I'm a bit confused as
>> to why you wouldn't get it otherwise.
>
> The preprocessed output gives me
> typedef void(^GSEnumeratorBlock)(id, NSUInteger, BOOL*);
In that case, I don't see how you can be seeing the behaviour that you are
seeing. The compiler is seeing GSEnumeratorBlock as a block type, so it will
never be generating type encodings for it as a structure. The only thing that
I can think of is that you somehow did not do a completely clean build.
David
-- Sent from my IBM 1620