]> sourceware.org Git - valgrind.git/commit
s390x regtest: Adjust op00 and op_exception tests for Clang
authorAndreas Arnez <arnez@linux.ibm.com>
Fri, 29 Sep 2023 14:11:31 +0000 (16:11 +0200)
committerAndreas Arnez <arnez@linux.ibm.com>
Fri, 29 Sep 2023 14:11:31 +0000 (16:11 +0200)
commit38dabf70b40a511a17decd36b68148a2f31c38dc
tree25473a2c0ac344b99f1a720777d0eb146af766f8
parenta23b9bf5dfc9f0fd883a16ff10ba712e205a4435
s390x regtest: Adjust op00 and op_exception tests for Clang

As part of fixing Bug 465782, adjust the op00 and op_exception tests.

The op00 test case doesn't compile with clang because the .hword assembler
directive is not known to llvm-as.  When replacing it with .short, the
test case fails because clang/llvm-as generates different line number
information from gcc/gas.  Using gcc, Valgrind's error message locates the
unrecognised instruction

   at 0x........: main (op00.c:3)

whereas with clang, it shows:

   at 0x........: main (op00.c:4)

The asm statement in op00.c is indeed located at line 4, so when compiling
with gcc, the indicated line number is just wrong.  This is because gas
only updates line number information for instruction directives, not for
directives like `.short' as used here.  See also the discussion in
https://sourceware.org/bugzilla/show_bug.cgi?id=30206

The same applies to the op_exception test case, where `.long' is used to
emit illegal instructions.

Make these test cases independent from this difference, by replacing the
`.short' and `.long' directives by equivalent `.insn' directives.  Also
drop the unnecessary duplication of op00.stderr.exp.
none/tests/s390x/Makefile.am
none/tests/s390x/op00.c
none/tests/s390x/op00.stderr.exp [moved from none/tests/s390x/op00.stderr.exp1 with 92% similarity]
none/tests/s390x/op00.stderr.exp2 [deleted file]
none/tests/s390x/op_exception.c
none/tests/s390x/op_exception.stderr.exp
This page took 0.030925 seconds and 5 git commands to generate.