mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-26 23:09:03 -04:00

When displaying the macro backtrace, ignore some of the backtraces that do not provide extra information to the diagnostic. Typically, if the problem is entirely contained within a macro argument, the macro expansion is often not needed. Also take into account SourceRange's attached to the diagnostic when selecting which backtraces to ignore. Two previous test cases have also been updated. Patch by Zhengkai Wu, with minor formatting fixes. Differential Revision: http://reviews.llvm.org/D11778 llvm-svn: 244788
35 lines
1.1 KiB
C
35 lines
1.1 KiB
C
// RUN: not %clang_cc1 -fsyntax-only -pedantic-errors %s 2>&1 | FileCheck %s --check-prefix=PRESUMED
|
|
// RUN: not %clang_cc1 -fsyntax-only -pedantic-errors -fno-diagnostics-use-presumed-location %s 2>&1 | FileCheck %s --check-prefix=SPELLING
|
|
|
|
#line 100
|
|
#define X(y) y
|
|
X(int n = error);
|
|
|
|
// PRESUMED: diag-presumed.c:101:11: error: use of undeclared identifier 'error'
|
|
// SPELLING: diag-presumed.c:6:11: error: use of undeclared identifier 'error'
|
|
|
|
;
|
|
// PRESUMED: diag-presumed.c:106:1: error: extra ';' outside of a functio
|
|
// SPELLING: diag-presumed.c:11:1: error: extra ';' outside of a functio
|
|
|
|
# 1 "thing1.cc" 1
|
|
# 1 "thing1.h" 1
|
|
# 1 "systemheader.h" 1 3
|
|
;
|
|
// No diagnostic here: we're in a system header, even if we're using spelling
|
|
// locations for the diagnostics..
|
|
// PRESUMED-NOT: extra ';'
|
|
// SPELLING-NOT: extra ';'
|
|
|
|
another error;
|
|
// PRESUMED: included from {{.*}}diag-presumed.c:110:
|
|
// PRESUMED: from thing1.cc:1:
|
|
// PRESUMED: from thing1.h:1:
|
|
// PRESUMED: systemheader.h:7:1: error: unknown type name 'another'
|
|
|
|
// SPELLING-NOT: included from
|
|
// SPELLING: diag-presumed.c:24:1: error: unknown type name 'another'
|
|
|
|
# 1 "thing1.h" 2
|
|
# 1 "thing1.cc" 2
|