Question Details

No question body available.

Tags

c gcc c99 retro-computing irix

Answers (1)

January 10, 2026 Score: 0 Rep: 35,155 Quality: Medium Completeness: 80%

GCC seemingly knows nothing about generic(). It's even hard to get Google to search for that.

The generic() function is not specified by the C99 standard.

And c99 is an Irix compiler command used to compile under the C99 standard:

cc(1)cc(1)

NAME

cc, c89, c99, CC - Invokes the MIPS C, MIPSpro C, or MIPSpro C++ compiler

SYNOPSIS

cc, c89, c99 [options] files

CC [options] files

DESCRIPTION

This man page describes the cc(1), c89(1), c99(1), and CC(1) commands.

...

The c99 command invokes the MIPSpro C compiler with C99 standard features.

Given

/ The following 18 entry points are defined in c99's libc. generic is a builtin defined > in the c99 front end. /

from the IRIX headers, that strongly implies that you need to use the IRIX c99 command to compile using the IRIX headers as generic() appears to be a non-standard internal implementation precursor to C11's Generic().

As isinf( f ) expands to generic(f,,, isinf, isinff, isinfl,,,)(f), you can probably use

int x = isinf(f);

to compile under GCC.

That assumes that isinf() is declared as isinf( float ), implying that the other declarations are isinff( double ) and isinfl( long double ).