Wed 20 Apr 2005 06:04:18 PM UTC, original submission:
// OS:
// SunOS codesign10 5.9 Generic_118558-01 sun4u sparc
//
// gcc:
// Reading specs from /sun-local/gnu/bin/../lib/gcc/sparc-sun-solaris2.9/3.4.2/specs
// Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls
// Thread model: posix
// gcc version 3.4.2
// Testcase follows:
#include <stdarg.h>
#include <stdlib.h>
struct rel_record
{
int _c;
};
typedef struct rel_record rel_record;
struct rel_table
{
rel_record * _r;
};
typedef struct rel_table rel_table;
void
rel_add_records (rel_table * table, ...)
{
va_list rp;
rel_record r;
va_start (rp, table);
r = va_arg (rp, rel_record);
while ( r._c )
r = va_arg (rp, rel_record);
va_end (rp);
}
int main( int argc, char *argv[] ) {
rel_record r0 = { 12 };
rel_record r1 = { 0 };
rel_add_records (NULL, r0, r1); // ok
// stdarg missuse breaks on SunOS
rel_add_records (NULL, r0, 0); // segfaults
return 0;
}
|