aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/CommandFlags.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2022-11-24 16:58:49 -0500
committerMatt Arsenault <Matthew.Arsenault@amd.com>2023-01-05 14:51:37 -0500
commitb67c16ff6af557174e498d6d82df9936e333f3d6 (patch)
tree48d304392b215dc5b5f3c3defc7c8476d72e1e17 /llvm/lib/CodeGen/CommandFlags.cpp
parentb4993bea2907ef132d549fa3f1c9a882f4264470 (diff)
downloadllvm-b67c16ff6af557174e498d6d82df9936e333f3d6.zip
llvm-b67c16ff6af557174e498d6d82df9936e333f3d6.tar.gz
llvm-b67c16ff6af557174e498d6d82df9936e333f3d6.tar.bz2
Verifier: Disallow uses of intrinsic global variables
appendToGlobalCtors implicitly assumes this is the case, since it deletes and recreates without trying to update any uses. This ran into an interesting problem in a few linker tests. During the link, ConstantExpr casts were speculatively created to replace any uses that might need them for replacement. These unused ConstantExprs would hang around and still appear on the use list. It seems like a bug that those stick around, but I'm not sure where those are supposed to be cleaned up. Avoid this by not creating the casts for appending linkage. Delete one of the casts entirely as it breaks no tests. The verifier has enforced a specific type for these since 2011, so I don't see why we would need to handle linking modules with a wrong types. One test does fail without the second cast (Linker/appending-global-proto.ll, added by D95126). This test looks contrived; it's using appending linkage with a regular variable. The LangRef suggests this is illegal (and suggests another missing verifier check).
Diffstat (limited to 'llvm/lib/CodeGen/CommandFlags.cpp')
0 files changed, 0 insertions, 0 deletions