[LLVMdev] Should the function operand flag 'sret' match the flag in function declaration?

Yuri yuri at tsoft.com
Fri May 7 18:24:56 PDT 2010


I have these two instructions, first one inside some procedure, second 
one is an outside declaration.
Code verification passes and it runs, but incorrectly.
Every time I saw such situation coming from c++ compiler, attributes 
'noalias sret' appear on both call and declaration.

Does such situation make sense, or (as I guess it is) a bug in verifier? 
I think verifier should match at least 'sret' flag in call and declaration.

...
call void @_Z7returnsi(%struct.MyString* %z, i32 %1) nounwind
...
declare void @_Z7returnsi(%struct.MyString* noalias sret, i32)
...


Yuri



More information about the llvm-dev mailing list