<div dir="ltr"><br><div> fixed this issue. replaced offending line with :<br><br><div><span class="" style="white-space:pre"> </span>function->setAttributes(AttributeSet::get(getGlobalContext(),AttributeSet::FunctionIndex,Attribute::ReadOnly));</div>
</div><div><br><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jan 21, 2014 at 8:45 AM, Lee Hammerton <span dir="ltr"><<a href="mailto:savoury.snax@googlemail.com" target="_blank">savoury.snax@googlemail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div><br></div><div> I've just finished updating my EDL frontend from LLVM3.0 to LLVM3.4, it wasn't too painful, however many of my programs are failing to verify after construction. Basically I get an error from the verifier e.g. :<br>
<br><div>Attribute after last parameter!</div><div>i1 ()* @PinGettest</div><div>Broken module found, compilation aborted!<br><br> After some digging, I've narrowed it down to the following :<br><br> <span style="white-space:pre-wrap"> </span>function->setOnlyReadsMemory(true);<br>
<br> which is used for functions that are tied to reads on PINs, (EDL is a form of description language for emulators - a kind of hardware abstraction for chips).<br><br> If I comment out the setOnlyReadsMemory, then the verifier completes fine. The call is made just after creating the function.<br>
<br> I`m guessing the attribute changes between 3.1 and 3.4 are to blame, perhaps there is now an alternate way to specify this?</div></div><span class="HOEnZb"><font color="#888888"><div><br></div><div> Lee</div></font></span></div>
</blockquote></div><br></div>