xref: /llvm-project/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.c (revision d912f1f0cb49465b08f82fae89ece222404e5640)
1*d912f1f0SNAKAMURA Takumi #define C c
2*d912f1f0SNAKAMURA Takumi #define D 1
3*d912f1f0SNAKAMURA Takumi #define E (C != a) && (C > a)
4*d912f1f0SNAKAMURA Takumi #define F E
5*d912f1f0SNAKAMURA Takumi 
func1(void)6*d912f1f0SNAKAMURA Takumi void __attribute__((noinline)) func1(void) { return; }
7*d912f1f0SNAKAMURA Takumi 
func(int a,int b,int c)8*d912f1f0SNAKAMURA Takumi void __attribute__((noinline)) func(int a, int b, int c) {
9*d912f1f0SNAKAMURA Takumi   if (a && D && E || b)
10*d912f1f0SNAKAMURA Takumi     func1();
11*d912f1f0SNAKAMURA Takumi   if (b && D)
12*d912f1f0SNAKAMURA Takumi     func1();
13*d912f1f0SNAKAMURA Takumi   if (a && (b && C) || (D && F))
14*d912f1f0SNAKAMURA Takumi     func1();
15*d912f1f0SNAKAMURA Takumi }
16*d912f1f0SNAKAMURA Takumi 
main()17*d912f1f0SNAKAMURA Takumi int main() {
18*d912f1f0SNAKAMURA Takumi   func(2, 3, 3);
19*d912f1f0SNAKAMURA Takumi   return 0;
20*d912f1f0SNAKAMURA Takumi }
21