aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2009-11-18 00:40:12 +0000
committerMike Stump <mrs@apple.com>2009-11-18 00:40:12 +0000
commit2710c4159ff4761ba9867aca18f60a178b297686 (patch)
treeb3e23e833c8413d2a5a7d7023e0a15f0bbfdad7b
parent321c22f1c4271c3d9a3d4d3fc18847f948ab595b (diff)
Fix one last gotcha with typeid.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89172 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/CGExprAgg.cpp1
-rw-r--r--test/CodeGenCXX/rtti.cpp4
2 files changed, 5 insertions, 0 deletions
diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp
index 901f867a59..0e10368ab0 100644
--- a/lib/CodeGen/CGExprAgg.cpp
+++ b/lib/CodeGen/CGExprAgg.cpp
@@ -114,6 +114,7 @@ public:
void VisitCXXConstructExpr(const CXXConstructExpr *E);
void VisitCXXExprWithTemporaries(CXXExprWithTemporaries *E);
void VisitCXXZeroInitValueExpr(CXXZeroInitValueExpr *E);
+ void VisitCXXTypeidExpr(CXXTypeidExpr *E) { EmitAggLoadOfLValue(E); }
void VisitVAArgExpr(VAArgExpr *E);
diff --git a/test/CodeGenCXX/rtti.cpp b/test/CodeGenCXX/rtti.cpp
index aea85a33b4..b64071c65f 100644
--- a/test/CodeGenCXX/rtti.cpp
+++ b/test/CodeGenCXX/rtti.cpp
@@ -193,3 +193,7 @@ int test3() {
if (typeid(int[5]) == typeid(enum a))
return 0;
}
+
+bool test4(std::type_info* __pointee) {
+ return *__pointee == typeid (void);
+}