I'm trying to work out the size of a struct so that I can pass this to the

'llvm.memcpy' intrinsic. It's easy to find out how I'm supposed to do this,

as I keep seeing the following:

%Size = getelementptr %T* null, int 1

%SizeI = cast %T* %Size to uint

But I'm unsure how I actually do this in the C++ API. Is the 'null' here a

llvm::ConstantPointerNull? Any help here would be much appreciated.

Additionally, I was wondering whether I can use this method to find out the

size of variable-length arrays, such as [0 x i32], for example? I've tried

doing this and am obviously doing something wrong.

%Size = getelementptr [0 x i32]* %1, i32* null, i32 1

%SizeI = ptrtoint i32* %Size to i64

This gives entirely the wrong result, and I'm not surprised, as it doesn't

look correct. Should I instead be implementing these arrays with a size

associated with them? Something like { i32, [0 x i32]}, for instance?

Cheers,

Fraser