annotate clang/test/Analysis/analyzer-checker-option-help.c @ 236:c4bab56944e8 llvm-original

LLVM 16
author kono
date Wed, 09 Nov 2022 17:45:10 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -analyzer-checker-option-help \
anatofuz
parents:
diff changeset
2 // RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-STABLE
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 // RUN: %clang_cc1 -analyzer-checker-option-help-alpha \
anatofuz
parents:
diff changeset
5 // RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-ALPHA
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 // RUN: %clang_cc1 -analyzer-checker-option-help-developer \
anatofuz
parents:
diff changeset
8 // RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-DEVELOPER
anatofuz
parents:
diff changeset
9
anatofuz
parents:
diff changeset
10 // RUN: %clang_cc1 -analyzer-checker-option-help-developer \
anatofuz
parents:
diff changeset
11 // RUN: -analyzer-checker-option-help-alpha \
anatofuz
parents:
diff changeset
12 // RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-DEVELOPER-ALPHA
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 // RUN: %clang_cc1 -analyzer-checker-option-help \
anatofuz
parents:
diff changeset
15 // RUN: -analyzer-checker-option-help-alpha \
anatofuz
parents:
diff changeset
16 // RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-STABLE-ALPHA
anatofuz
parents:
diff changeset
17
anatofuz
parents:
diff changeset
18 // RUN: %clang_cc1 -analyzer-checker-option-help \
anatofuz
parents:
diff changeset
19 // RUN: -analyzer-checker-option-help-developer \
anatofuz
parents:
diff changeset
20 // RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-STABLE-DEVELOPER
anatofuz
parents:
diff changeset
21
anatofuz
parents:
diff changeset
22 // RUN: %clang_cc1 -analyzer-checker-option-help \
anatofuz
parents:
diff changeset
23 // RUN: -analyzer-checker-option-help-alpha \
anatofuz
parents:
diff changeset
24 // RUN: -analyzer-checker-option-help-developer \
anatofuz
parents:
diff changeset
25 // RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-STABLE-ALPHA-DEVELOPER
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 // CHECK-STABLE: OVERVIEW: Clang Static Analyzer Checker and Package Option List
anatofuz
parents:
diff changeset
28 //
anatofuz
parents:
diff changeset
29 // CHECK-STABLE: USAGE: -analyzer-config <OPTION1=VALUE,OPTION2=VALUE,...>
anatofuz
parents:
diff changeset
30 //
anatofuz
parents:
diff changeset
31 // CHECK-STABLE: -analyzer-config OPTION1=VALUE, -analyzer-config
anatofuz
parents:
diff changeset
32 // CHECK-STABLE-SAME: OPTION2=VALUE, ...
anatofuz
parents:
diff changeset
33 //
anatofuz
parents:
diff changeset
34 // CHECK-STABLE: OPTIONS:
anatofuz
parents:
diff changeset
35 //
anatofuz
parents:
diff changeset
36 // CHECK-STABLE: cplusplus.Move:WarnOn
anatofuz
parents:
diff changeset
37 // CHECK-STABLE-SAME: (string) In non-aggressive mode, only warn
anatofuz
parents:
diff changeset
38 // CHECK-STABLLE: on use-after-move of local variables (or
anatofuz
parents:
diff changeset
39 // CHECK-STABLLE: local rvalue references) and of STL objects.
anatofuz
parents:
diff changeset
40 // CHECK-STABLLE: The former is possible because local variables
anatofuz
parents:
diff changeset
41 // CHECK-STABLLE: (or local rvalue references) are not tempting
anatofuz
parents:
diff changeset
42 // CHECK-STABLLE: their user to re-use the storage. The latter
anatofuz
parents:
diff changeset
43 // CHECK-STABLLE: is possible because STL objects are known
anatofuz
parents:
diff changeset
44 // CHECK-STABLLE: to end up in a valid but unspecified state
anatofuz
parents:
diff changeset
45 // CHECK-STABLLE: after the move and their state-reset methods
anatofuz
parents:
diff changeset
46 // CHECK-STABLLE: are also known, which allows us to predict
anatofuz
parents:
diff changeset
47 // CHECK-STABLLE: precisely when use-after-move is invalid.
anatofuz
parents:
diff changeset
48 // CHECK-STABLLE: Some STL objects are known to conform to
anatofuz
parents:
diff changeset
49 // CHECK-STABLLE: additional contracts after move, so they
anatofuz
parents:
diff changeset
50 // CHECK-STABLLE: are not tracked. However, smart pointers
anatofuz
parents:
diff changeset
51 // CHECK-STABLLE: specifically are tracked because we can
anatofuz
parents:
diff changeset
52 // CHECK-STABLLE: perform extra checking over them. In aggressive
anatofuz
parents:
diff changeset
53 // CHECK-STABLLE: mode, warn on any use-after-move because
anatofuz
parents:
diff changeset
54 // CHECK-STABLLE: the user has intentionally asked us to completely
anatofuz
parents:
diff changeset
55 // CHECK-STABLLE: eliminate use-after-move in his code. Values:
anatofuz
parents:
diff changeset
56 // CHECK-STABLLE: "KnownsOnly", "KnownsAndLocals", "All".
anatofuz
parents:
diff changeset
57 // CHECK-STABLLE: (default: KnownsAndLocals)
anatofuz
parents:
diff changeset
58
anatofuz
parents:
diff changeset
59 // CHECK-STABLE-NOT: debug.AnalysisOrder:*
anatofuz
parents:
diff changeset
60 // CHECK-DEVELOPER: debug.AnalysisOrder:*
anatofuz
parents:
diff changeset
61 // CHECK-ALPHA-NOT: debug.AnalysisOrder:*
anatofuz
parents:
diff changeset
62
anatofuz
parents:
diff changeset
63 // CHECK-STABLE-NOT: optin.cplusplus.UninitializedObject:IgnoreGuardedFields
anatofuz
parents:
diff changeset
64 // CHECK-DEVELOPER-NOT: optin.cplusplus.UninitializedObject:IgnoreGuardedFields
anatofuz
parents:
diff changeset
65 // CHECK-ALPHA: optin.cplusplus.UninitializedObject:IgnoreGuardedFields
anatofuz
parents:
diff changeset
66
anatofuz
parents:
diff changeset
67 // CHECK-STABLE: optin.performance.Padding:AllowedPad
anatofuz
parents:
diff changeset
68 // CHECK-DEVELOPER-NOT: optin.performance.Padding:AllowedPad
anatofuz
parents:
diff changeset
69 // CHECK-ALPHA-NOT: optin.performance.Padding:AllowedPad
anatofuz
parents:
diff changeset
70
anatofuz
parents:
diff changeset
71
anatofuz
parents:
diff changeset
72 // CHECK-STABLE-ALPHA-NOT: debug.AnalysisOrder:*
anatofuz
parents:
diff changeset
73 // CHECK-DEVELOPER-ALPHA: debug.AnalysisOrder:*
anatofuz
parents:
diff changeset
74 // CHECK-STABLE-DEVELOPER: debug.AnalysisOrder:*
anatofuz
parents:
diff changeset
75
anatofuz
parents:
diff changeset
76 // CHECK-STABLE-ALPHA: optin.cplusplus.UninitializedObject:IgnoreGuardedFields
anatofuz
parents:
diff changeset
77 // CHECK-DEVELOPER-ALPHA: optin.cplusplus.UninitializedObject:IgnoreGuardedFields
anatofuz
parents:
diff changeset
78 // CHECK-STABLE-DEVELOPER-NOT: optin.cplusplus.UninitializedObject:IgnoreGuardedFields
anatofuz
parents:
diff changeset
79
anatofuz
parents:
diff changeset
80 // CHECK-STABLE-ALPHA: optin.performance.Padding:AllowedPad
anatofuz
parents:
diff changeset
81 // CHECK-DEVELOPER-ALPHA-NOT: optin.performance.Padding:AllowedPad
anatofuz
parents:
diff changeset
82 // CHECK-STABLE-DEVELOPER: optin.performance.Padding:AllowedPad
anatofuz
parents:
diff changeset
83
anatofuz
parents:
diff changeset
84
anatofuz
parents:
diff changeset
85 // CHECK-STABLE-ALPHA-DEVELOPER: debug.AnalysisOrder:*
anatofuz
parents:
diff changeset
86 // CHECK-STABLE-ALPHA-DEVELOPER: optin.cplusplus.UninitializedObject:IgnoreGuardedFields
anatofuz
parents:
diff changeset
87 // CHECK-STABLE-ALPHA-DEVELOPER: optin.performance.Padding:AllowedPad