Message ID | 20210511143646.2349625-1-stefansf@linux.ibm.com |
---|---|
State | New |
Headers | show |
Series | testsuite: Fix input operands of gcc.dg/guality/pr43077-1.c | expand |
On Tue, May 11, 2021 at 04:36:47PM +0200, Stefan Schulze Frielinghaus via Gcc-patches wrote: > The type of the output operands *p and *q of the extended asm statement > of function foo is unsigned long whereas the type of the corresponding > input operands is int. This results, e.g. on IBM Z, in the case that > the immediates 2 and 3 are written into registers in SI mode and read in > DI mode resulting in wrong values. Fixed by lifting the input operands > to type long. > > gcc/testsuite/ChangeLog: > > * gcc.dg/guality/pr43077-1.c: Align types of output and input > operands by lifting immediates to type long. > > Ok for mainline? Ok, thanks. > diff --git a/gcc/testsuite/gcc.dg/guality/pr43077-1.c b/gcc/testsuite/gcc.dg/guality/pr43077-1.c > index 39bd26aae01..2d9376298d4 100644 > --- a/gcc/testsuite/gcc.dg/guality/pr43077-1.c > +++ b/gcc/testsuite/gcc.dg/guality/pr43077-1.c > @@ -24,7 +24,7 @@ int __attribute__((noinline)) > foo (unsigned long *p, unsigned long *q) > { > int ret; > - asm volatile ("" : "=r" (ret), "=r" (*p), "=r" (*q) : "0" (1), "1" (2), "2" (3)); > + asm volatile ("" : "=r" (ret), "=r" (*p), "=r" (*q) : "0" (1), "1" (2l), "2" (3l)); > return ret; > } > > -- > 2.23.0 Jakub
diff --git a/gcc/testsuite/gcc.dg/guality/pr43077-1.c b/gcc/testsuite/gcc.dg/guality/pr43077-1.c index 39bd26aae01..2d9376298d4 100644 --- a/gcc/testsuite/gcc.dg/guality/pr43077-1.c +++ b/gcc/testsuite/gcc.dg/guality/pr43077-1.c @@ -24,7 +24,7 @@ int __attribute__((noinline)) foo (unsigned long *p, unsigned long *q) { int ret; - asm volatile ("" : "=r" (ret), "=r" (*p), "=r" (*q) : "0" (1), "1" (2), "2" (3)); + asm volatile ("" : "=r" (ret), "=r" (*p), "=r" (*q) : "0" (1), "1" (2l), "2" (3l)); return ret; }