On Fri, Oct 05, 2012 at 05:20:23PM +0200, Andreas Schwab wrote: > Greg Wooledge <wool...@eeg.ccf.org> writes: > > > Line 1209 says: > > # if (ULLONG_MAX != LLONG_MAX) > > > > LLONG_MAX expands to: > > ((long long int) (~ (long long int) 0 - ((long long int) ((! ((long long > > int) 0 < (long long int) -1)) ? ~ (long long int) 0 << (sizeof (long long > > int) * 8 - 1) : (long long int) 0)))) > > That's not a valid expansion for this macro, it cannot contain casts or > the sizeof operator.
Then there's a serious problem somewhere, because that's what gcc -E is giving me. Copying the top part of getconf.c and then jumping straight to the heart of the matter: imadev:/var/tmp/bash/bash-4.2/examples/loadables$ cat foo.c #ifdef HAVE_CONFIG_H # include <config.h> #endif #ifdef HAVE_SYS_PARAM_H # include <sys/param.h> #endif #include <stdio.h> #ifdef HAVE_LIMITS_H #include <limits.h> #endif #ifdef HAVE_LOCALE_H #include <locale.h> #endif #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #include <errno.h> #include "typemax.h" #include "bashansi.h" #include "shell.h" #include "builtins.h" #include "stdc.h" #include "common.h" #include "bashgetopt.h" #include "getconf.h" #ifndef errno extern int errno; #endif LLONG_MAX imadev:/var/tmp/bash/bash-4.2/examples/loadables$ /net/appl/gcc-3.3/bin/gcc -fpic -DHAVE_CONFIG_H -DSHELL -DHPUX -g -O2 -I. -I.. -I../.. -I../../lib -I../../builtins -I../../include -I/var/tmp/bash/bash-4.2 -I/var/tmp/bash/bash-4.2/lib -I/var/tmp/bash/bash-4.2/builtins -I../../lib/intl -I/var/tmp/bash/bash-4.2/lib/intl -E foo.c | tail # 29 "foo.c" 2 # 1 "getconf.h" 1 # 31 "foo.c" 2 extern int errno; ((long long int) (~ (long long int) 0 - ((long long int) ((! ((long long int) 0 < (long long int) -1)) ? ~ (long long int) 0 << (sizeof (long long int) * 8 - 1) : (long long int) 0))))