[LLVMdev] non-pointer gcroot

Scott Graham scott.llvm at h4ck3r.net
Fri Nov 7 12:29:06 PST 2008


Hi

I'm getting an assert in LowerIntrinsics::InsertRootInitializers
because I'm gcroot'ing an alloca to a non-pointer.

I was hoping to modify InsertRootInitializers to memset the structure
in the case that it's not a pointer, but I'm not sure how to. Can
anyone suggest what should go at "todo; something here"?

  ...
  for (AllocaInst **I = Roots, **E = Roots + Count; I != E; ++I)
    if (!InitedRoots.count(*I)) {
	  const Type* Ty = cast<PointerType>((*I)->getType())->getElementType();
	  if (Ty->getTypeID() == Type::PointerTyID) {
	    new StoreInst(ConstantPointerNull::get(cast<PointerType>(Ty)),
					*I, IP);
	  } else {
	    // todo; something here
	  }
      MadeChange = true;
    }
  ...

thanks,
scott



More information about the llvm-dev mailing list