[LLVMdev] infinitely recursive named struct types
Chris Lattner
clattner at apple.com
Thu Oct 6 17:28:13 PDT 2011
On Oct 6, 2011, at 4:00 PM, NAKAMURA Takumi wrote:
> Chris,
>
>>> Looks like it is possible to create an infinitely recursive struct type, llvm-as accepts this:
>>> %s = type { i32, i8, %s }
>>
>> This should be illegal, and should probably be caught by the verifier.
>
> I suppose Edwin would like llvm to check (and let failed) in type
> constructing, earlier than verifier.
> I guess, such a insane type building might cause in various point,
> ...to go in an infinite loop or stack overflow.
There is a balance between time and cost of what happens in asserts and the verifier. If it's fast and has good algorithmic complexity, I wouldn't object to it as an assert.
-Chris
More information about the llvm-dev
mailing list