aboutsummaryrefslogtreecommitdiff
path: root/clang/test/Misc/warning-suppression-mappings.cpp
blob: 6e86bf9c0f8f182499cf9350807a479118a13f0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Check for warnings
// RUN: not %clang --warning-suppression-mappings=foo.txt -fsyntax-only %s 2>&1 | FileCheck -check-prefix MISSING_MAPPING %s
// RUN: not %clang -cc1 --warning-suppression-mappings=foo.txt -fsyntax-only %s 2>&1 | FileCheck -check-prefix MISSING_MAPPING %s
// MISSING_MAPPING: error: no such file or directory: 'foo.txt'

// Check that it's no-op when diagnostics aren't enabled.
// RUN: %clang -cc1 -Wno-everything -Werror --warning-suppression-mappings=%S/Inputs/suppression-mapping.txt -fsyntax-only %s 2>&1 | FileCheck -check-prefix WARNINGS_DISABLED --allow-empty %s
// WARNINGS_DISABLED-NOT: warning:
// WARNINGS_DISABLED-NOT: error:

// RUN: %clang -cc1 -verify -Wformat=2 -Wunused --warning-suppression-mappings=%S/Inputs/suppression-mapping.txt -fsyntax-only %s

__attribute__((__format__ (__printf__, 1, 2)))
void format_err(const char* const pString, ...);

namespace {
void foo() {
  const char *x;
  format_err(x); // Warning suppressed here.
  const char *y; // expected-warning{{unused variable 'y'}}
}
}

#line 42 "foo/bar.h"
namespace {
void bar() { // expected-warning{{unused function 'bar'}}
  const char *x;
  format_err(x); // expected-warning{{format string is not a string literal (potentially insecure)}} \
                 // expected-note{{treat the string as an argument to avoid this}}
}
}