mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-21 16:31:16 +00:00
04d2186546
r206400 and r209442 added remarks that are disabled by default. However, if a diagnostic handler is registered, the remarks are sent unfiltered to the handler. This is the right behaviour for clang, since it has its own filters. However, the diagnostic handler exposed in the LTO API receives only the severity and message. It doesn't have the information to filter by pass name. For LTO, disabled remarks should be filtered by the producer. I've changed `LLVMContext::setDiagnosticHandler()` to take a `bool` argument indicating whether to respect the built-in filters. This defaults to `false`, so other consumers don't have a behaviour change, but `LTOCodeGenerator::setDiagnosticHandler()` sets it to `true`. To make this behaviour testable, I added a `-use-diagnostic-handler` command-line option to `llvm-lto`. This fixes PR21108. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218784 91177308-0d34-0410-b5e6-96231b3b80d8
39 lines
1.1 KiB
LLVM
39 lines
1.1 KiB
LLVM
; RUN: llvm-as < %s >%t.bc
|
|
; PR21108: Diagnostic handlers get pass remarks, even if they're not enabled.
|
|
|
|
; Confirm that there are -pass-remarks.
|
|
; RUN: llvm-lto -pass-remarks=inline \
|
|
; RUN: -exported-symbol _main -o %t.o %t.bc 2>&1 | \
|
|
; RUN: FileCheck %s -allow-empty -check-prefix=REMARKS
|
|
; RUN: llvm-nm %t.o | FileCheck %s -check-prefix NM
|
|
|
|
; RUN: llvm-lto -pass-remarks=inline -use-diagnostic-handler \
|
|
; RUN: -exported-symbol _main -o %t.o %t.bc 2>&1 | \
|
|
; RUN: FileCheck %s -allow-empty -check-prefix=REMARKS
|
|
; RUN: llvm-nm %t.o | FileCheck %s -check-prefix NM
|
|
|
|
; Confirm that -pass-remarks are not printed by default.
|
|
; RUN: llvm-lto \
|
|
; RUN: -exported-symbol _main -o %t.o %t.bc 2>&1 | \
|
|
; RUN: FileCheck %s -allow-empty
|
|
; RUN: llvm-nm %t.o | FileCheck %s -check-prefix NM
|
|
|
|
; RUN: llvm-lto -use-diagnostic-handler \
|
|
; RUN: -exported-symbol _main -o %t.o %t.bc 2>&1 | \
|
|
; RUN: FileCheck %s -allow-empty
|
|
; RUN: llvm-nm %t.o | FileCheck %s -check-prefix NM
|
|
|
|
; REMARKS: remark:
|
|
; CHECK-NOT: remark:
|
|
; NM-NOT: foo
|
|
; NM: main
|
|
|
|
define i32 @foo() {
|
|
ret i32 7
|
|
}
|
|
|
|
define i32 @main() {
|
|
%i = call i32 @foo()
|
|
ret i32 %i
|
|
}
|