implement debug info for typeof()

llvm-svn: 59032
This commit is contained in:
Chris Lattner 2008-11-11 07:01:36 +00:00
parent bd178d51ff
commit cd2523b41c

View File

@ -15,6 +15,7 @@
#include "CodeGenModule.h" #include "CodeGenModule.h"
#include "clang/AST/ASTContext.h" #include "clang/AST/ASTContext.h"
#include "clang/AST/Decl.h" #include "clang/AST/Decl.h"
#include "clang/AST/Expr.h"
#include "clang/AST/RecordLayout.h" #include "clang/AST/RecordLayout.h"
#include "clang/Basic/SourceManager.h" #include "clang/Basic/SourceManager.h"
#include "clang/Basic/FileManager.h" #include "clang/Basic/FileManager.h"
@ -382,8 +383,6 @@ llvm::DIType CGDebugInfo::getOrCreateType(QualType Ty,
case Type::ObjCInterface: case Type::ObjCInterface:
case Type::ObjCQualifiedInterface: case Type::ObjCQualifiedInterface:
case Type::ObjCQualifiedId: case Type::ObjCQualifiedId:
case Type::TypeOfExp:
case Type::TypeOfTyp:
default: default:
return llvm::DIType(); return llvm::DIType();
@ -393,14 +392,18 @@ llvm::DIType CGDebugInfo::getOrCreateType(QualType Ty,
case Type::Tagged: Slot = CreateType(cast<TagType>(Ty), Unit); break; case Type::Tagged: Slot = CreateType(cast<TagType>(Ty), Unit); break;
case Type::FunctionProto: case Type::FunctionProto:
case Type::FunctionNoProto: case Type::FunctionNoProto:
Slot = CreateType(cast<FunctionType>(Ty), Unit); return Slot = CreateType(cast<FunctionType>(Ty), Unit);
break;
case Type::ConstantArray: case Type::ConstantArray:
case Type::VariableArray: case Type::VariableArray:
case Type::IncompleteArray: case Type::IncompleteArray:
Slot = CreateType(cast<ArrayType>(Ty), Unit); return Slot = CreateType(cast<ArrayType>(Ty), Unit);
break; case Type::TypeOfExp:
return Slot = getOrCreateType(cast<TypeOfExpr>(Ty)->getUnderlyingExpr()
->getType(), Unit);
case Type::TypeOfTyp:
return Slot = getOrCreateType(cast<TypeOfType>(Ty)->getUnderlyingType(),
Unit);
} }
return Slot; return Slot;