get the value of a Constant in LLVM IR

i parse the llvm IR (llvm-3.3 version) and when i meet a constant, i want to get it’s value.

eg i32 5, i want to get the 5.

I am interested in ConstantInt-ConstantFP-ConstantArray-ConstantStruct subclasses.

Things are a bit easier with ConstantInt and ConstantFP constants but how
could i get the value of a ConstantArray?


ConstantArray : This represents a constant array.
const std::vector &getValues() const: Returns a vector of component constants that makeup this array.
But i cannot find this method, i think that it is not implemented in the 3.3 version.
There is the method ‘Value::print()’ but this gives me also the type which is not what i want.

I found also the ‘static void WriteConstantInternal()’ method in llvm/lib/IR/AsmWriter.cpp which is called
by ‘Value::print()’ but it is ‘static’ so i cannot access it. I need something like the ‘WriteConstantInternal’ method.

Any ideas?



ConstantArray is a subclass of Constant. Constant, in turn, has a method called getAggregateElement() that will return the Constant * value at the specified offset within the aggregate constant (be it an array, vector, etc.). For more information, consult the Constant class doxygen page: – John T.