forked from OSchip/llvm-project
parent
f8bc4d878c
commit
b75016d299
|
@ -1315,7 +1315,7 @@ CodeGenFunction::GenerateCopyHelperFunction(const CGBlockInfo &blockInfo) {
|
|||
false);
|
||||
StartFunction(FD, C.VoidTy, Fn, FI, args, SourceLocation());
|
||||
// Don't emit any line table entries for the body of this function.
|
||||
BuiltinLocation BL(*this, Builder);
|
||||
ArtificialLocation AL(*this, Builder);
|
||||
|
||||
llvm::Type *structPtrTy = blockInfo.StructureType->getPointerTo();
|
||||
|
||||
|
@ -1490,7 +1490,7 @@ CodeGenFunction::GenerateDestroyHelperFunction(const CGBlockInfo &blockInfo) {
|
|||
false, false);
|
||||
StartFunction(FD, C.VoidTy, Fn, FI, args, SourceLocation());
|
||||
// Don't emit any line table entries for the body of this function.
|
||||
BuiltinLocation BL(*this, Builder);
|
||||
ArtificialLocation AL(*this, Builder);
|
||||
|
||||
llvm::Type *structPtrTy = blockInfo.StructureType->getPointerTo();
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ NoLocation::~NoLocation() {
|
|||
}
|
||||
}
|
||||
|
||||
BuiltinLocation::BuiltinLocation(CodeGenFunction &CGF, CGBuilderTy &B)
|
||||
ArtificialLocation::ArtificialLocation(CodeGenFunction &CGF, CGBuilderTy &B)
|
||||
: DI(CGF.getDebugInfo()), Builder(B) {
|
||||
if (DI) {
|
||||
SavedLoc = DI->getLocation();
|
||||
|
@ -83,7 +83,7 @@ BuiltinLocation::BuiltinLocation(CodeGenFunction &CGF, CGBuilderTy &B)
|
|||
}
|
||||
}
|
||||
|
||||
BuiltinLocation::~BuiltinLocation() {
|
||||
ArtificialLocation::~ArtificialLocation() {
|
||||
if (DI) {
|
||||
assert(Builder.getCurrentDebugLocation().getLine() == 0);
|
||||
DI->CurLoc = SavedLoc;
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace CodeGen {
|
|||
/// the backend.
|
||||
class CGDebugInfo {
|
||||
friend class NoLocation;
|
||||
friend class BuiltinLocation;
|
||||
friend class ArtificialLocation;
|
||||
CodeGenModule &CGM;
|
||||
const CodeGenOptions::DebugInfoKind DebugKind;
|
||||
llvm::DIBuilder DBuilder;
|
||||
|
@ -403,8 +403,8 @@ public:
|
|||
~NoLocation();
|
||||
};
|
||||
|
||||
/// BuiltinLocation - An RAII object that temporarily switches to an
|
||||
/// artificial debug location that has a valid scope, but no line
|
||||
/// ArtificialLocation - An RAII object that temporarily switches to
|
||||
/// an artificial debug location that has a valid scope, but no line
|
||||
/// information. This is useful when emitting compiler-generated
|
||||
/// helper functions that have no source location associated with
|
||||
/// them.
|
||||
|
@ -412,14 +412,14 @@ public:
|
|||
/// This is necessary because pasing an empty SourceLocation to
|
||||
/// CGDebugInfo::setLocation() will result in the last valid location
|
||||
/// being reused.
|
||||
class BuiltinLocation {
|
||||
class ArtificialLocation {
|
||||
SourceLocation SavedLoc;
|
||||
CGDebugInfo *DI;
|
||||
CGBuilderTy &Builder;
|
||||
public:
|
||||
BuiltinLocation(CodeGenFunction &CGF, CGBuilderTy &B);
|
||||
ArtificialLocation(CodeGenFunction &CGF, CGBuilderTy &B);
|
||||
/// ~BuildinLocation - Autorestore everything back to normal.
|
||||
~BuiltinLocation();
|
||||
~ArtificialLocation();
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue