Skip to content

Commit

Permalink
The error check for using -g with a .s file already containing dwarf …
Browse files Browse the repository at this point in the history
….file

directives was in the wrong place and getting triggered incorectly with a
cpp .file directive.  This change fixes that and adds a test case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147951 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
enderby committed Jan 11, 2012
1 parent 46df3ad commit 8704b78
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
8 changes: 4 additions & 4 deletions lib/MC/MCParser/AsmParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2424,13 +2424,13 @@ bool GenericAsmParser::ParseDirectiveFile(StringRef, SMLoc DirectiveLoc) {
if (getLexer().isNot(AsmToken::EndOfStatement))
return TokError("unexpected token in '.file' directive");

if (getContext().getGenDwarfForAssembly() == true)
Error(DirectiveLoc, "input can't have .file dwarf directives when -g is "
"used to generate dwarf debug info for assembly code");

if (FileNumber == -1)
getStreamer().EmitFileDirective(Filename);
else {
if (getContext().getGenDwarfForAssembly() == true)
Error(DirectiveLoc, "input can't have .file dwarf directives when -g is "
"used to generate dwarf debug info for assembly code");

if (getStreamer().EmitDwarfFileDirective(FileNumber, Directory, Filename))
Error(FileNumberLoc, "file number already allocated");
}
Expand Down
9 changes: 9 additions & 0 deletions test/MC/AsmParser/directive_file-errors.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// RUN: not llvm-mc -g -triple i386-unknown-unknown %s 2> %t.err | FileCheck %s
// RUN: FileCheck --check-prefix=CHECK-ERRORS %s < %t.err
// Test for Bug 11740

.file "hello"
.file 1 "world"

// CHECK: .file "hello"
// CHECK-ERRORS:6:9: error: input can't have .file dwarf directives when -g is used to generate dwarf debug info for assembly code

0 comments on commit 8704b78

Please sign in to comment.