mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-13 19:24:21 +00:00
implement debug info for typeof()
llvm-svn: 59032
This commit is contained in:
parent
bd178d51ff
commit
cd2523b41c
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user