[LLVMdev] Request for help: why does the program link correctly?
Soumitra Chatterjee
soumitra at hp.com
Wed Jul 1 22:09:35 PDT 2015
Hi,
I am a bit stumped on the following case, and hopefully missing
something very basic. Can someone please help me understand why the
following is allowed to link correctly?
$ cat -n main.c
1 extern void foo();
2
3 int main() { foo(); }
$ cat -n def.c
1 int foo = 99;
$ clang main.c def.c ; echo $?
0
I guess the answer depends on why is 'main.c::foo' not marked as func?
$ clang -c main.c def.c
$ readelf -s main.o def.o | grep foo
9: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND foo
7: 0000000000000000 4 OBJECT GLOBAL DEFAULT 2 foo
Thanks,
Soumitra
More information about the llvm-dev
mailing list