Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / utils / update_cc_test_checks / check-globals.test
blob9a2e0cca4c4c830a724aab47bef1a255eb9d65fa
1 RUN: rm -rf %t && mkdir %t
3 # Check --check-globals in normal mode and in --include-generated-funcs mode.
5 RUN: cp %S/Inputs/check-globals.c %t/norm.c
6 RUN: %update_cc_test_checks %t/norm.c --check-globals
7 RUN: FileCheck %s --input-file=%t/norm.c --match-full-lines -strict-whitespace \
8 RUN:   -check-prefixes=BOTH,NRM
10 RUN: cp %S/Inputs/check-globals.c %t/igf.c
11 RUN: %update_cc_test_checks %t/igf.c --check-globals --include-generated-funcs
12 RUN: FileCheck %s --input-file=%t/igf.c --match-full-lines -strict-whitespace \
13 RUN:   -check-prefixes=BOTH,IGF
15 # Check that repeating doesn't change it, such as duplicating '//.' occurrences.
17 RUN: cp %t/norm.c %t/norm-again.c
18 RUN: %update_cc_test_checks %t/norm-again.c --check-globals
19 RUN: diff -u %t/norm.c %t/norm-again.c
20 RUN: rm %t/norm-again.c
22 RUN: cp %t/igf.c %t/igf-again.c
23 RUN: %update_cc_test_checks %t/igf-again.c --check-globals \
24 RUN:     --include-generated-funcs
25 RUN: diff -u %t/igf.c %t/igf-again.c
26 RUN: rm %t/igf-again.c
28 # Check that the generated directives actually work correctly.  For example,
29 # they're not in the wrong order.
31 RUN: cp %S/Inputs/lit.cfg.example %t/lit.cfg
32 # Show lit failures while avoiding confusing FileCheck input dump nesting.
33 RUN: %lit %t
34 # Lit was successful.  Sanity-check the results with deterministic test order.
35 RUN: rm %t/.lit_test_times.txt
36 RUN: %lit %t 2>&1 | FileCheck -check-prefix=LIT-RUN %s
38 END.
40   BOTH-NOT:{{.}}
41        NRM:// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals
42        IGF:// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals --include-generated-funcs
43  BOTH-NEXT:// {{.*}}
44  BOTH-NEXT:// RUN: true
45  BOTH-NEXT:// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -emit-llvm -o - %s | FileCheck %s
46 BOTH-EMPTY:
47   IGF-NEXT:void foo(void) {
48   IGF-NEXT:  static int i, j;
49   IGF-NEXT:}
50   IGF-NEXT:void bar(void) {
51   IGF-NEXT:  static int i, j;
52   IGF-NEXT:}
53  BOTH-NEXT://.
54  BOTH-NEXT:// CHECK: @foo.i = internal global i32 0, align 4
55  BOTH-NEXT:// CHECK: @foo.j = internal global i32 0, align 4
56  BOTH-NEXT:// CHECK: @bar.i = internal global i32 0, align 4
57  BOTH-NEXT:// CHECK: @bar.j = internal global i32 0, align 4
58  BOTH-NEXT://.
59  BOTH-NEXT:// CHECK-LABEL: @foo(
60  BOTH-NEXT:// CHECK-NEXT:  entry:
61  BOTH-NEXT:// CHECK-NEXT:    ret void
62  BOTH-NEXT://
63   NRM-NEXT:void foo(void) {
64   NRM-NEXT:  static int i, j;
65   NRM-NEXT:}
66   IGF-NEXT://
67  BOTH-NEXT:// CHECK-LABEL: @bar(
68  BOTH-NEXT:// CHECK-NEXT:  entry:
69  BOTH-NEXT:// CHECK-NEXT:    ret void
70  BOTH-NEXT://
71   NRM-NEXT:void bar(void) {
72   NRM-NEXT:  static int i, j;
73   NRM-NEXT:}
74  BOTH-NEXT://.
75  BOTH-NEXT:// CHECK: attributes {{.*}}
76  BOTH-NEXT://.
77  BOTH-NEXT:// CHECK: !0 = {{.*}}
78  BOTH-NEXT:// CHECK: !1 = {{.*}}
79  BOTH-NEXT://.
80   BOTH-NOT:{{.}}
82 LIT-RUN: Testing: 2 tests
83 LIT-RUN: PASS: {{.*}} igf.c
84 LIT-RUN: PASS: {{.*}} norm.c