[LLVMdev] StructType opaque->sized

Duncan Sands baldrick at free.fr
Tue Jan 22 01:54:29 PST 2013

Hi Rick,

On 22/01/13 09:04, Rick Mann wrote:
> I'm building a StructType without a body using
> 	StructType *StructType::create(LLVMContext &Context, StringRef Name);
> and then later adding a body to with setBody(). It starts of isOpaque() == true, and isSized() == false, and after I add the body, isOpaque() == false, but isSized() is still false.

this is the standard way of making a struct type, so I suspect you made a
mistake such as adding an opaque field to the struct (this will stop it from
having a size).

Ciao, Duncan.

> If I create a StructType using
> 	StructType * StructType ::create(LLVMContext &Context,
>                              ArrayRef<Type*> Elements,
>                              StringRef Name,
>                              bool isPacked = false);
> Then isOpaque() == false and isSized() == true.
> Can I not make a sized struct starting with an opaque one and adding a body later?

More information about the llvm-dev mailing list