diff options
author | Devang Patel <dpatel@apple.com> | 2011-02-16 18:40:36 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2011-02-16 18:40:36 +0000 |
commit | bb6f54833cda9197511678d078f7d95d8da6f27e (patch) | |
tree | dc91270d88d221f8533ded21a89efa1b08cbc42d | |
parent | 9b7db6200d366e4964d63ae1f33c7b9d7b9831cb (diff) |
If preprocessed token introduced empty filename then use main translation unit's filename for debug info entries.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125672 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 2 | ||||
-rw-r--r-- | test/CodeGen/debug-info-crash.c | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 9296b42e77..956c358743 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -161,7 +161,7 @@ llvm::DIFile CGDebugInfo::getOrCreateFile(SourceLocation Loc) { SourceManager &SM = CGM.getContext().getSourceManager(); PresumedLoc PLoc = SM.getPresumedLoc(Loc); - if (PLoc.isInvalid()) + if (PLoc.isInvalid() || llvm::StringRef(PLoc.getFilename()).empty()) // If the location is not valid then use main input file. return DBuilder.CreateFile(TheCU.getFilename(), TheCU.getDirectory()); diff --git a/test/CodeGen/debug-info-crash.c b/test/CodeGen/debug-info-crash.c index e0c9dd415b..8d6a360c64 100644 --- a/test/CodeGen/debug-info-crash.c +++ b/test/CodeGen/debug-info-crash.c @@ -19,3 +19,12 @@ dispatch_item_t LEGACY_dispatch_call(dispatch_queue_t dq, } ); } + +// radar://9008853 +typedef struct P { + int x; +} PS; +# 1 "" +void foo() { + PS p2; +} |