mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:43:36 +01:00
[DWARF] Warn on and ignore ".file 0" for DWARF v4 and earlier.
This had been messing with the directory table for prior versions, and also could induce a crash when generating asm output. llvm-svn: 335254
This commit is contained in:
parent
8aef1e988f
commit
24e3581267
@ -3362,9 +3362,11 @@ bool AsmParser::parseDirectiveFile(SMLoc DirectiveLoc) {
|
||||
memcpy(SourceBuf, SourceString.data(), SourceString.size());
|
||||
Source = StringRef(SourceBuf, SourceString.size());
|
||||
}
|
||||
if (FileNumber == 0)
|
||||
if (FileNumber == 0) {
|
||||
if (Ctx.getDwarfVersion() < 5)
|
||||
return Warning(DirectiveLoc, "file 0 not supported prior to DWARF-5");
|
||||
getStreamer().emitDwarfFile0Directive(Directory, Filename, CKMem, Source);
|
||||
else {
|
||||
} else {
|
||||
Expected<unsigned> FileNumOrErr = getStreamer().tryEmitDwarfFileDirective(
|
||||
FileNumber, Directory, Filename, CKMem, Source);
|
||||
if (!FileNumOrErr)
|
||||
|
@ -1,5 +1,8 @@
|
||||
# RUN: llvm-mc -dwarf-version 4 %s -filetype=obj -o - | llvm-dwarfdump -debug-line - | FileCheck %s --check-prefixes=CHECK,CHECK-4
|
||||
# RUN: llvm-mc -dwarf-version 4 %s -filetype=asm -o - | FileCheck %s --check-prefixes=ASM,ASM-4
|
||||
# RUN: llvm-mc -dwarf-version 4 %s -filetype=asm -o - 2>&1 | FileCheck %s --check-prefix=WARN
|
||||
# RUN: llvm-mc -dwarf-version 5 %s -filetype=obj -o - | llvm-dwarfdump -debug-line - | FileCheck %s --check-prefixes=CHECK,CHECK-5
|
||||
# RUN: llvm-mc -dwarf-version 5 %s -filetype=asm -o - | FileCheck %s --check-prefixes=ASM,ASM-5
|
||||
# REQUIRES: default_triple
|
||||
# Darwin is stuck on DWARF v2.
|
||||
# XFAIL: darwin
|
||||
@ -9,6 +12,7 @@
|
||||
# CHECK-5: include_directories[ 0] = "/test"
|
||||
# CHECK-4-NOT: include_directories[ 0]
|
||||
# CHECK: include_directories[ 1] = "/include"
|
||||
# CHECK-4: include_directories[ 2] = "/test"
|
||||
# CHECK-NOT: include_directories
|
||||
# CHECK-4-NOT: file_names[ 0]
|
||||
# CHECK-5: file_names[ 0]:
|
||||
@ -19,4 +23,16 @@
|
||||
# CHECK-NEXT: dir_index: 1
|
||||
# CHECK: file_names[ 2]:
|
||||
# CHECK-NEXT: name: "root.cpp"
|
||||
# CHECK-NEXT: dir_index: 0
|
||||
# CHECK-4-NEXT: dir_index: 2
|
||||
# CHECK-5-NEXT: dir_index: 0
|
||||
|
||||
# ASM-NOT: .file
|
||||
# ASM-5: .file 0 "/test" "root.cpp"
|
||||
# ASM: .file 1 "/include" "header.h"
|
||||
# ASM-4: .file 2 "/test" "root.cpp"
|
||||
# ASM-5: .file 2 "root.cpp"
|
||||
# ASM-NOT: .file
|
||||
|
||||
# WARN: file 0 not supported prior to DWARF-5
|
||||
# WARN-NEXT: .file 0
|
||||
# WARN-NEXT: ^
|
||||
|
Loading…
Reference in New Issue
Block a user