[llvm-dev] Create the GlobalVariable which have extern in one header file

Mustakimur Khandaker via llvm-dev llvm-dev at lists.llvm.org
Thu Feb 21 18:53:04 PST 2019


Hi
Good day. I am facing issue with creating a GlobalVariable. I already have an extern for that global in a header file to use it in the following way

extern const void* DATA_TABLE[];

And with a LLVM PASS, I am trying to create this array with the same name and with initializer. So, I have following:

GlobalVariable *gvar_data = new GlobalVariable(
    M, blockItems->getType(), true, GlobalValue::CommonLinkage,
    blockItems, "DATA_TABLE");
gvar_data->setAlignment(16);
gvar_data->setSection("data_section");
gvar_data->addAttribute(llvm::Attribute::OptimizeNone);

I am not sure if I am using the correct Linkage or not.
The pass has failed to complete it. Here is the runtime fault. Any guess what I am doing incorrect?

'common' global must have a zero initializer!
[10 x i8*]* @DATA_TABLE.1
LLVM ERROR: Broken module found, compilation aborted:::::::::!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190222/4fd50559/attachment.html>


More information about the llvm-dev mailing list