aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/guality/pr54970.c
blob: e60cc043fc9131e633f43ad62f4afe4b71101971 (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* PR debug/54970 */
/* PR debug/54971 */
/* { dg-do run } */
/* { dg-options "-g" } */

#include "../nop.h"

int
main ()
{
  int a[] = { 1, 2, 3 };	/* { dg-final { gdb-test .+4 "a\[0\]" "1" { xfail { no-opts "-O0" "-Og" } } } } */
  int *p = a + 2;		/* { dg-final { gdb-test .+3 "a\[1\]" "2" } } */
  int *q = a + 1;		/* { dg-final { gdb-test .+2 "a\[2\]" "3" } } */
				/* { dg-final { gdb-test .+1 "*p" "3" } } */
  asm volatile (NOP);		/* { dg-final { gdb-test . "*q" "2" } } */
  *p += 10;			/* { dg-final { gdb-test .+4 "a\[0\]" "1" { xfail { no-opts "-O0" "-Og" } } } } */
				/* { dg-final { gdb-test .+3 "a\[1\]" "2" } } */
				/* { dg-final { gdb-test .+2 "a\[2\]" "13" } } */
				/* { dg-final { gdb-test .+1 "*p" "13" } } */
  asm volatile (NOP);		/* { dg-final { gdb-test . "*q" "2" } } */
  *q += 10;			/* { dg-final { gdb-test .+4 "a\[0\]" "1" { xfail { no-opts "-O0" "-Og" } } } } */
				/* { dg-final { gdb-test .+3 "a\[1\]" "12" } } */
				/* { dg-final { gdb-test .+2 "a\[2\]" "13" } } */
				/* { dg-final { gdb-test .+1 "*p" "13" } } */
  asm volatile (NOP);		/* { dg-final { gdb-test . "*q" "12" } } */
  __builtin_memcpy (&a, (int [3]) { 4, 5, 6 }, sizeof (a));
				/* { dg-final { gdb-test .+4 "a\[0\]" "4" { xfail { no-opts "-O0" "-Og" } } } } */
				/* { dg-final { gdb-test .+3 "a\[1\]" "5" } } */
				/* { dg-final { gdb-test .+2 "a\[2\]" "6" } } */
				/* { dg-final { gdb-test .+1 "*p" "6" } } */
  asm volatile (NOP);		/* { dg-final { gdb-test . "*q" "5" } } */
  *p += 20;			/* { dg-final { gdb-test .+4 "a\[0\]" "4" { xfail { no-opts "-O0" "-Og" } } } } */
				/* { dg-final { gdb-test .+3 "a\[1\]" "5" } } */
				/* { dg-final { gdb-test .+2 "a\[2\]" "26" } } */
				/* { dg-final { gdb-test .+1 "*p" "26" } } */
  asm volatile (NOP);		/* { dg-final { gdb-test . "*q" "5" } } */
  *q += 20;			/* { dg-final { gdb-test .+8 "a\[0\]" "4" { xfail { no-opts "-O0" "-Og" } } } } */
				/* { dg-final { gdb-test .+7 "a\[1\]" "25" } } */
				/* { dg-final { gdb-test .+6 "a\[2\]" "26" } } */
				/* { dg-final { gdb-test .+5 "*p" "26" } } */
				/* { dg-final { gdb-test .+4 "p\[-1\]" "25" } } */
				/* { dg-final { gdb-test .+3 "p\[-2\]" "4" { xfail { no-opts "-O0" "-Og" } } } } */
				/* { dg-final { gdb-test .+2 "q\[-1\]" "4" { xfail { no-opts "-O0" "-Og" } } } } */
				/* { dg-final { gdb-test .+1 "q\[1\]" "26" } } */
  asm volatile (NOP);		/* { dg-final { gdb-test . "*q" "25" } } */
  return 0;
}