aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenTBAA.cpp
diff options
context:
space:
mode:
authorErich Keane <erich.keane@intel.com>2020-04-17 10:44:19 -0700
committerErich Keane <erich.keane@intel.com>2020-04-17 10:45:48 -0700
commit5f0903e9bec97e67bf34d887bcbe9d05790de934 (patch)
treef0e7c27a17af3f8ec0837b02160012bfc4177025 /clang/lib/CodeGen/CodeGenTBAA.cpp
parent5f6d93c7d3165938ed4602013f4b89929b1f9682 (diff)
downloadllvm-5f0903e9bec97e67bf34d887bcbe9d05790de934.zip
llvm-5f0903e9bec97e67bf34d887bcbe9d05790de934.tar.gz
llvm-5f0903e9bec97e67bf34d887bcbe9d05790de934.tar.bz2
Reland Implement _ExtInt as an extended int type specifier.
I fixed the LLDB issue, so re-applying the patch. This reverts commit a4b88c044980337bb14390be654fe76864aa60ec.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenTBAA.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenTBAA.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenTBAA.cpp b/clang/lib/CodeGen/CodeGenTBAA.cpp
index 8cc8c16..f4ebe68 100644
--- a/clang/lib/CodeGen/CodeGenTBAA.cpp
+++ b/clang/lib/CodeGen/CodeGenTBAA.cpp
@@ -209,6 +209,15 @@ llvm::MDNode *CodeGenTBAA::getTypeInfoHelper(const Type *Ty) {
return createScalarTypeNode(OutName, getChar(), Size);
}
+ if (const auto *EIT = dyn_cast<ExtIntType>(Ty)) {
+ SmallString<256> OutName;
+ llvm::raw_svector_ostream Out(OutName);
+ // Don't specify signed/unsigned since integer types can alias despite sign
+ // differences.
+ Out << "_ExtInt(" << EIT->getNumBits() << ')';
+ return createScalarTypeNode(OutName, getChar(), Size);
+ }
+
// For now, handle any other kind of type conservatively.
return getChar();
}