On Fri, Oct 21, 2022 at 10:40:16AM +0200, Florian Weimer via Gcc wrote:
> What should we do about these when they are not relevant to what's being
> tested? For example, gcc/testsuite/gcc.c-torture/execute/ieee/mzero6.c
> has this:
>
> int main ()
> {
> if (__builtin_copysign (1.0, func (0.0 / -5.0, 10)) != -1.0)
> abort ();
> exit (0);
> }
>
> but no include files, so abort and exit are implicitly declared.
>
> Should we inject a header with -include with the most common
> declarations (which includes at least abort and exit)? Or add the
> missing #include directives? But the latter might not work for
> freestanding targets.
>
> Implicit ints and function declarations without prototypes are also
> common (not just for main).
>
> Other tests look like they might be intended to be built in C89 mode,
> e.g. gcc/testsuite/gcc.c-torture/compile/386.c, although it's not
> immediately obvious to me what they test.
I think these days we at least for abort tend to use __builtin_abort ();
if we don't want to declare it (in other tests we declare it ourselves).
exit we usually don't use at all, but sometimes we handle it similarly
to abort.
Jakub