[LLVMdev] Verifier should not make any assumptions about calls to "malloc"

Albert Graef Dr.Graef at t-online.de
Tue Sep 22 13:16:23 PDT 2009


Chris Lattner wrote:
> Yes, I agree, the verifier shouldn't worry about malloc calls.
> 
>> Actually isMalloc also seems bogus.  In a freestanding environment
>> there is no reason that a function that happens to be called "malloc"
>> should have anything to do with memory allocation.  Do you have a
>> plan to handle this?  Shouldn't all malloc manipulations be done from
>> SimplifyLibcalls?
> 
> We violate this in other places. If someone is worried about  
> freestanding environments and -fno-builtin-malloc, we should add a new  
> function attribute "not builtin" and have the optimizer respect that.

I'm worried about this, too. Pure does its own extern declarations which
do not line up with malloc() returning int8* either. That's because I
need to distinguish between void* and char* in my frontend, and the
easiest way to do that is to create void* as a different type (it's a
pointer to an empty struct in Pure IIRC). As a consequence, Pure doesn't
work with the assumption that malloc() returns int8*. Now I could
probably work around this in some way, but that's very awkward.

Albert

-- 
Dr. Albert Gr"af
Dept. of Music-Informatics, University of Mainz, Germany
Email:  Dr.Graef at t-online.de, ag at muwiinfa.geschichte.uni-mainz.de
WWW:    http://www.musikinformatik.uni-mainz.de/ag



More information about the llvm-dev mailing list