aboutsummaryrefslogtreecommitdiff
path: root/Sema/SemaType.cpp
diff options
context:
space:
mode:
authorSteve Naroff <snaroff@apple.com>2007-07-31 12:34:36 +0000
committerSteve Naroff <snaroff@apple.com>2007-07-31 12:34:36 +0000
commitd1861fd633d5096a00777c918eb8575ea7162fe7 (patch)
treecd71c78f1c513b18ab427f6036aa2debdcb7d93a /Sema/SemaType.cpp
parent8a2bc625e86983e250ed31040695a870a767196b (diff)
Add parsing and AST support for GNU "typeof".
Many small changes to lot's of files. Still some FIXME's, however the basic support is in place. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40631 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Sema/SemaType.cpp')
-rw-r--r--Sema/SemaType.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/Sema/SemaType.cpp b/Sema/SemaType.cpp
index cf72e38e2f..d70002340b 100644
--- a/Sema/SemaType.cpp
+++ b/Sema/SemaType.cpp
@@ -95,6 +95,18 @@ static QualType ConvertDeclSpecToType(const DeclSpec &DS, ASTContext &Ctx) {
// TypeQuals handled by caller.
return Ctx.getTypedefType(cast<TypedefDecl>(D));
}
+ case DeclSpec::TST_typeofType: {
+ QualType T = QualType::getFromOpaquePtr(DS.getTypeRep());
+ assert(!T.isNull() && "Didn't get a type for typeof?");
+ // TypeQuals handled by caller.
+ return Ctx.getTypeOfType(T);
+ }
+ case DeclSpec::TST_typeofExpr: {
+ Expr *E = static_cast<Expr *>(DS.getTypeRep());
+ assert(E && "Didn't get an expression for typeof?");
+ // TypeQuals handled by caller.
+ return Ctx.getTypeOfType(E);
+ }
}
}