Use current location as the location of compiler generated arguments, e.g. self, _cmd etc.
llvm-svn: 95743
This commit is contained in:
parent
69920c5c8a
commit
1b5330afe9
|
@ -91,16 +91,15 @@ llvm::DICompileUnit CGDebugInfo::getOrCreateCompileUnit(SourceLocation Loc) {
|
|||
// Get source file information.
|
||||
const char *FileName = "<unknown>";
|
||||
SourceManager &SM = CGM.getContext().getSourceManager();
|
||||
unsigned FID = 0;
|
||||
if (Loc.isValid()) {
|
||||
PresumedLoc PLoc = SM.getPresumedLoc(Loc);
|
||||
FileName = PLoc.getFilename();
|
||||
FID = PLoc.getIncludeLoc().getRawEncoding();
|
||||
}
|
||||
unsigned FID = PLoc.getIncludeLoc().getRawEncoding();
|
||||
|
||||
// See if this compile unit has been used before.
|
||||
llvm::DICompileUnit &Unit = CompileUnitCache[FID];
|
||||
if (!Unit.isNull()) return Unit;
|
||||
// See if this compile unit has been used before for this valid location.
|
||||
llvm::DICompileUnit &Unit = CompileUnitCache[FID];
|
||||
if (!Unit.isNull()) return Unit;
|
||||
}
|
||||
|
||||
// Get absolute path name.
|
||||
llvm::sys::Path AbsFileName(FileName);
|
||||
|
@ -150,7 +149,7 @@ llvm::DICompileUnit CGDebugInfo::getOrCreateCompileUnit(SourceLocation Loc) {
|
|||
RuntimeVers = LO.ObjCNonFragileABI ? 2 : 1;
|
||||
|
||||
// Create new compile unit.
|
||||
return Unit = DebugFactory.CreateCompileUnit(
|
||||
return DebugFactory.CreateCompileUnit(
|
||||
LangTag, AbsFileName.getLast(), AbsFileName.getDirname(), Producer, isMain,
|
||||
LO.Optimize, CGM.getCodeGenOpts().DwarfDebugFlags, RuntimeVers);
|
||||
}
|
||||
|
@ -1515,9 +1514,12 @@ void CGDebugInfo::EmitDeclare(const VarDecl *VD, unsigned Tag,
|
|||
PresumedLoc PLoc = SM.getPresumedLoc(VD->getLocation());
|
||||
unsigned Line = 0;
|
||||
unsigned Column = 0;
|
||||
if (!PLoc.isInvalid()) {
|
||||
if (PLoc.isInvalid())
|
||||
PLoc = SM.getPresumedLoc(CurLoc);
|
||||
if (PLoc.isValid()) {
|
||||
Line = PLoc.getLine();
|
||||
Column = PLoc.getColumn();
|
||||
Unit = getOrCreateCompileUnit(CurLoc);
|
||||
} else {
|
||||
Unit = llvm::DICompileUnit();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
// RUN: %clang_cc1 -x objective-c -emit-llvm -g < %s | grep "\"self\", metadata"
|
||||
// Test to check that "self" argument is assigned a location.
|
||||
|
||||
@interface Foo
|
||||
-(void) Bar: (int)x ;
|
||||
@end
|
||||
|
||||
|
||||
@implementation Foo
|
||||
-(void) Bar: (int)x
|
||||
{
|
||||
}
|
||||
@end
|
||||
|
Loading…
Reference in New Issue