summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug1714204.c
blob: dab02dcc9b0b31fc1ddeb6cd47ead8b355739169 (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
/*
	bug 1714204
*/

#include <testfwk.h>

typedef struct {
	unsigned int w[2];
} TEST_TYPE;

unsigned char i1, i2, i3;

void foo(TEST_TYPE *p1, TEST_TYPE *p2, TEST_TYPE *p3)
{
	if (p2->w[i2] > ++p3->w[i3])
		p1->w[i1] = p2->w[i2] + p3->w[i3];
}

void
testBug(void)
{
	TEST_TYPE t1 = { { 1, 1 } };
	TEST_TYPE t2 = { { 1, 1 } };
	TEST_TYPE t3 = { { 1, 1 } };

	i1 = i2 = i3 = 0;

	foo(&t1, &t2, &t3);

	ASSERT (t1.w[0] == 1);
}