Don't load values out of global constants with weak

linkage: the value may be replaced with something
different at link time.  (Frontends that want to
allow values to be loaded out of weak constants can
give their constants weak_odr linkage).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67407 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan Sands
2009-03-20 21:53:29 +00:00
parent db95fa131a
commit ab6b226978
5 changed files with 58 additions and 6 deletions

View File

@@ -0,0 +1,12 @@
// RUN: %llvmgcc -S %s -O1 -o - | grep {ret.*123}
// Check for bug compatibility with gcc.
const int x __attribute((weak)) = 123;
int* f(void) {
return &x;
}
int g(void) {
return *f();
}