Refactor and update CTF testcases [PR105089]
authorIndu Bhagat <indu.bhagat@oracle.com>
Thu, 14 Apr 2022 17:02:45 +0000 (10:02 -0700)
committerIndu Bhagat <indu.bhagat@oracle.com>
Thu, 14 Apr 2022 17:04:16 +0000 (10:04 -0700)
commitd634c5d7c78c6ec0fa39d96984460475564519c8
tree4a041d19a5fa67a0396a4d3a15490ec9a5631eba
parentd0b00e74bf59c73b79471bbe9de19373b8661e20
Refactor and update CTF testcases [PR105089]

This commit splits the ctf-array-2.c into ctf-array-5.c and
ctf-variables.c with the following responsibilities:

[1] ctf-array-2.c: Test CTF generation for unsized arrays.
[2] ctf-array-5.c: Test CTF generation for unsized but initialized array.
[3] ctf-variables-3.c: Test CTF generation for extern variable with defining
decl.

Earlier all three tests above were being done in ctf-array-2.c.  The
checks around [3] were very loose in the original version of ctf-array-2.c
in that the testcase was only checking that the types are as expected.  The
compiler was emitting two CTF variable records as follows:

 Variables:
  _CTF_NEWSTR ->  5: const const char [0] (size 0x0) -> 4: const char [0] (size 0x0)
  _CTF_NEWSTR ->  8: const const char [8] (size 0x8) -> 7: const char [8] (size 0x8)

This is incorrect behaviour as it creates ambiguity.  The testcase
ctf-variables-3.c now has added checks that only one CTF variable record
is expected.

2022-04-14  Indu Bhagat  <indu.bhagat@oracle.com>

gcc/testsuite/ChangeLog:

PR debug/105089
* gcc.dg/debug/ctf/ctf-array-2.c: Refactor testcase.  Move some
checks ...
* gcc.dg/debug/ctf/ctf-array-5.c: ... to here.
* gcc.dg/debug/ctf/ctf-variables-3.c: ... and here.  Add
additional checks for one CTF variable and one CTF object info
record.
gcc/testsuite/gcc.dg/debug/ctf/ctf-array-2.c
gcc/testsuite/gcc.dg/debug/ctf/ctf-array-5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/ctf/ctf-variables-3.c [new file with mode: 0644]