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. :
Attribute after last parameter!
i1 ()* @PinGettest
Broken module found, compilation aborted!
After some digging, I’ve narrowed it down to the following :
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).
If I comment out the setOnlyReadsMemory, then the verifier completes fine. The call is made just after creating the function.
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?