annotate clang/test/Misc/reduced-diags-macros.cpp @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: not %clang_cc1 -fsyntax-only %s 2>&1 | FileCheck %s -strict-whitespace
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 #define NO_INITIATION(x) int a = x * 2
anatofuz
parents:
diff changeset
4 #define NO_DEFINITION(x) int c = x * 2
anatofuz
parents:
diff changeset
5
anatofuz
parents:
diff changeset
6 NO_INITIATION(a);
anatofuz
parents:
diff changeset
7 NO_DEFINITION(b);
anatofuz
parents:
diff changeset
8
anatofuz
parents:
diff changeset
9 // CHECK: {{.*}}:6:15: warning: variable 'a' is uninitialized when used within its own initialization
anatofuz
parents:
diff changeset
10 // CHECK-NEXT: NO_INITIATION(a);
anatofuz
parents:
diff changeset
11 // CHECK-NEXT: ~~~~~~~~~~~~~~^~
anatofuz
parents:
diff changeset
12 // CHECK-NEXT: {{.*}}:3:34: note: expanded from macro 'NO_INITIATION'
anatofuz
parents:
diff changeset
13 // CHECK-NEXT: #define NO_INITIATION(x) int a = x * 2
anatofuz
parents:
diff changeset
14 // CHECK-NEXT: ~ ^
anatofuz
parents:
diff changeset
15
anatofuz
parents:
diff changeset
16 // CHECK: {{.*}}:7:15: error: use of undeclared identifier 'b'
anatofuz
parents:
diff changeset
17 // CHECK-NEXT: NO_DEFINITION(b);
anatofuz
parents:
diff changeset
18 // CHECK-NEXT: ^
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20
anatofuz
parents:
diff changeset
21 #define F(x) x + 1
anatofuz
parents:
diff changeset
22 #define ADD(x,y) y + F(x)
anatofuz
parents:
diff changeset
23 #define SWAP_ARGU(x,y) ADD(y,x)
anatofuz
parents:
diff changeset
24
anatofuz
parents:
diff changeset
25 int p = SWAP_ARGU(3, x);
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 // CHECK: {{.*}}:25:23: error: use of undeclared identifier 'x'
anatofuz
parents:
diff changeset
28 // CHECK-NEXT: int p = SWAP_ARGU(3, x);
anatofuz
parents:
diff changeset
29 // CHECK-NEXT: ^
anatofuz
parents:
diff changeset
30
anatofuz
parents:
diff changeset
31 #define APPLY(f,x,y) x f y
anatofuz
parents:
diff changeset
32
anatofuz
parents:
diff changeset
33 struct node {
anatofuz
parents:
diff changeset
34 };
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 node ff;
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 int r = APPLY(+,ff,1);
anatofuz
parents:
diff changeset
39 // CHECK: {{.*}}:38:15: error: invalid operands to binary expression ('node' and 'int')
anatofuz
parents:
diff changeset
40 // CHECK-NEXT: int r = APPLY(+,ff,1);
anatofuz
parents:
diff changeset
41 // CHECK-NEXT: ^ ~~ ~
anatofuz
parents:
diff changeset
42 // CHECK-NEXT: {{.*}}:31:24: note: expanded from macro 'APPLY'
anatofuz
parents:
diff changeset
43 // CHECK-NEXT: #define APPLY(f,x,y) x f y
anatofuz
parents:
diff changeset
44 // CHECK-NEXT: ~ ^ ~