aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/IRObjectFile.cpp
diff options
context:
space:
mode:
authorManman Ren <manman.ren@gmail.com>2016-02-11 19:19:18 +0000
committerManman Ren <manman.ren@gmail.com>2016-02-11 19:19:18 +0000
commit37dec10dbc58f0da9b90861aa04d11ae0ed39935 (patch)
tree08bb97d574090074c90e770e40f94df0ac540cd5 /llvm/lib/Object/IRObjectFile.cpp
parentbde158cbc7fabe7b6d4cad12a6884a98623948b9 (diff)
downloadllvm-37dec10dbc58f0da9b90861aa04d11ae0ed39935.zip
llvm-37dec10dbc58f0da9b90861aa04d11ae0ed39935.tar.gz
llvm-37dec10dbc58f0da9b90861aa04d11ae0ed39935.tar.bz2
[PR26550] Use a different TBAA root for C++ vs C.
This commit changes the root from "Simple C/C++ TBAA" to "Simple C++ TBAA" for C++. The problem is that the type name in the TBAA nodes is generated differently for C vs C++. If we link an IR file for C with an IR file for C++, since they have the same root and the type names are different, accesses to the two type nodes will be considered no-alias, even though the two type nodes are from the same type in a header file. The fix is to use different roots for C and C++. Types from C will be treated conservatively in respect to types from C++. Follow-up commits will change the C root to "Simple C TBAA" plus some mangling change for C types to make it a little more aggresive. llvm-svn: 260567
Diffstat (limited to 'llvm/lib/Object/IRObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions