[cfe-dev] clang -emit-llvm infinite recursion

steve naroff snaroff at apple.com
Wed Oct 17 17:40:28 PDT 2007


On Oct 17, 2007, at 5:17 PM, Chris Lattner <clattner at apple.com> wrote:

>
> On Oct 17, 2007, at 1:53 PM, Török Edvin wrote:
>
>> Hi,
>>
>> Iit gives me errors [because struct initializers are not implemented,
>> the errors are ok].
>> I know that struct initializers are not yet implemented (right?), but
>> then -emit-llvm should give an error if it can't handle something,  
>> and
>> not infinite recursion.
>>
>> I would have used bugpoint to create a reduced testcase, but I don't
>> know how to use it with clang, is it possible to use it?
>>
>> alex.i is available from here (it is a bit large):
>> http://edwintorok.googlepages.com/alex.i
>>
>> $ clang -emit-llvm alex.i
>> alex.i:661:19: warning: declaration does not declare anything
>>    __extension__ union
>>                  ^
>
> There are two issues here.  The first warning you are getting (above)
> is due to us not handling anonymous unions like GCC does yet.  Since
> this is just a warning, I don't consider it to be a high priority
> right now.
>
> The other issue is the array initialization case you hit.  Reduced,
> it looks like:
>
> unsigned char asso_values[] = { 34 };
> int test() { return asso_values[0]; }
>
> $ clang t.c
> t.c:3:21: error: illegal subscript of non-object type 'unsigned char
> (*)[]'
> int test() { return asso_values[0]; }
>
> I'm not sure where the failure is here.  Steve, should this set the
> type of asso_values to an array of size 1?

Yes. Looks like a trivial bug.

I'll fix this tonight...

Snaroff

> Or should the array type
> decay to pointer to element?  Is this something that would be
> reasonably easy to fix?
>
> -Chris
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev




More information about the cfe-dev mailing list