1 /* PR debug/45003 */
2 /* { dg-do run { target { x86_64-*-* && lp64 } } } */
3 /* { dg-options "-g" } */
4 
5 int __attribute__((noinline))
foo(unsigned short * p)6 foo (unsigned short *p)
7 {
8   int a = (short) *p;
9   asm volatile ("nop" : : "D" ((int) *p));
10   asm volatile ("nop" : : "D" ((int) *p));	/* { dg-final { gdb-test 10 "a" "-32648" } } */
11   return 0;
12 }
13 
14 int __attribute__((noinline))
bar(short * p)15 bar (short *p)
16 {
17   unsigned int a = (unsigned short) *p;
18   asm volatile ("nop" : : "D" ((unsigned int) *p));
19   asm volatile ("nop" : : "D" ((unsigned int) *p));	/* { dg-final { gdb-test 19 "a" "0x8078" } } */
20   return 0;
21 }
22 
23 int
main()24 main ()
25 {
26   unsigned short us = 0x8078;
27   foo (&us);
28   short s = -32648;
29   bar (&s);
30   return 0;
31 }
32