forked from OSchip/llvm-project
The error check for using -g with a .s file already containing dwarf .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. llvm-svn: 147951
This commit is contained in:
parent
21f83d9f36
commit
6223cf72e6
|
@ -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");
|
||||
}
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue