public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: arno@heho.snv.jussieu.fr
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org,
Subject: Re: c/10824: ICE in gcc/gcc/intl/dcigettext.c on FreeBSD5
Date: Fri, 16 May 2003 21:06:00 -0000 [thread overview]
Message-ID: <20030516210601.2476.qmail@sources.redhat.com> (raw)
The following reply was made to PR c/10824; it has been noted by GNATS.
From: arno@heho.snv.jussieu.fr
To: bangerth@dealii.org, arno@heho.snv.jussieu.fr, gcc-bugs@gcc.gnu.org,
gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: c/10824: ICE in gcc/gcc/intl/dcigettext.c on FreeBSD5
Date: 16 May 2003 23:01:37 +0200
--=-=-=
bangerth@dealii.org writes:
> Synopsis: ICE in gcc/gcc/intl/dcigettext.c on FreeBSD5
>
> State-Changed-From-To: open->feedback
> State-Changed-By: bangerth
> State-Changed-When: Fri May 16 20:38:42 2003
> State-Changed-Why:
> The code doesn't ICE for me, but then you don't say anything
> about the platform you are on and the command line flags
> you use. Please review
> http://gcc.gnu.org/bugs.html
> for what we need.
>
> Thanks
> Wolfgang
>
> http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10824
sorry
another try ... :
I attach :
'xgcc -v' output for the exact version of GCC and
the options given when GCC was configured/built;
'uname -a' output for the system type;
error is triggered by 'make bootstrap'
dcigettext.[is]
from the mailing-lists I thought this bug was solved some weeks
ago but it is persistent on my notebook
(NB, configuring with --disable-nls gives very nice results for
the same source tree)
--=-=-=
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=xgcc-v
Using built-in specs.
Configured with: ../../gcc/configure --host=i686-pc-freebsd5 --verbose --disable-shared --enable-libgcj --enable-threads=posix --prefix=/usr/vol/opt/freebsd5/gcc34-200304
Thread model: posix
gcc version 3.4 20030516 (experimental)
--=-=-=
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=uname-a
FreeBSD M 5.1-BETA FreeBSD 5.1-BETA #2: Fri May 9 16:38:43 CEST 2003 toor@M:/usr/obj/usr/src/sys/Sat-current i386
--=-=-=
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=make-bootstrap
make[3]: Entering directory `/usr/home/arno/src/aeneas/obj/freebsd5/gcc/intl'
../stage1/xgcc -B../stage1/ -B/usr/vol/opt/freebsd5/gcc34-200304/i686-pc-freebsd5/bin/ -c -DIN_GCC -DLOCALEDIR=\"/usr/vol/opt/freebsd5/gcc34-200304/share/locale\" -DLOCALE_ALIAS_PATH=\"/usr/vol/opt/freebsd5/gcc34-200304/share/locale\" -DLIBDIR=\"/usr/vol/opt/freebsd5/gcc34-200304/lib\" -DHAVE_CONFIG_H -I.. -I. -I../../../../gcc/gcc/intl -I../../../../gcc/gcc -I../../../../gcc/gcc/config -I../../../../gcc/gcc/../include -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno -long-long -Werror -fno-common ../../../../gcc/gcc/intl/dcigettext.c -o dcigettext.o
../../../../gcc/gcc/intl/dcigettext.c: In function `dcigettext__':
../../../../gcc/gcc/intl/dcigettext.c:677: internal compiler error: in instantiate_virtual_regs_lossage, at function.c:3823
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[3]: *** [dcigettext.o] Erreur 1
make[3]: Leaving directory `/usr/home/arno/src/aeneas/obj/freebsd5/gcc/intl'
make[2]: *** [intl.all] Erreur 1
make[2]: Leaving directory `/usr/home/arno/src/aeneas/obj/freebsd5/gcc'
make[1]: *** [stage2_build] Erreur 2
make[1]: Leaving directory `/usr/home/arno/src/aeneas/obj/freebsd5/gcc'
make: *** [bootstrap] Erreur 2
--=-=-=
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=dcigettext.i
# 1 "../../../../gcc/gcc/intl/dcigettext.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "../../../../gcc/gcc/intl/dcigettext.c"
# 27 "../../../../gcc/gcc/intl/dcigettext.c"
# 1 "../config.h" 1
# 1 "../auto-host.h" 1
# 2 "../config.h" 2
# 1 "../../../../gcc/include/ansidecl.h" 1
# 4 "../config.h" 2
# 28 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 1 "../include/sys/types.h" 1 3 4
# 54 "../include/sys/types.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 55 "../include/sys/types.h" 2 3 4
# 1 "/usr/include/machine/endian.h" 1 3 4
# 41 "/usr/include/machine/endian.h" 3 4
# 1 "/usr/include/sys/_types.h" 1 3 4
# 33 "/usr/include/sys/_types.h" 3 4
# 1 "/usr/include/machine/_types.h" 1 3 4
# 45 "/usr/include/machine/_types.h" 3 4
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef short __int16_t;
typedef unsigned short __uint16_t;
typedef int __int32_t;
typedef unsigned int __uint32_t;
typedef int __attribute__((__mode__(__DI__))) __int64_t;
typedef unsigned int __attribute__((__mode__(__DI__))) __uint64_t;
# 70 "/usr/include/machine/_types.h" 3 4
typedef unsigned long __clock_t;
typedef __int32_t __critical_t;
typedef double __double_t;
typedef double __float_t;
typedef __int32_t __intfptr_t;
typedef __int64_t __intmax_t;
typedef __int32_t __intptr_t;
typedef __int32_t __int_fast8_t;
typedef __int32_t __int_fast16_t;
typedef __int32_t __int_fast32_t;
typedef __int64_t __int_fast64_t;
typedef __int8_t __int_least8_t;
typedef __int16_t __int_least16_t;
typedef __int32_t __int_least32_t;
typedef __int64_t __int_least64_t;
typedef __int32_t __ptrdiff_t;
typedef __int32_t __register_t;
typedef __int32_t __segsz_t;
typedef __uint32_t __size_t;
typedef __int32_t __ssize_t;
typedef __int32_t __time_t;
typedef __uint32_t __uintfptr_t;
typedef __uint64_t __uintmax_t;
typedef __uint32_t __uintptr_t;
typedef __uint32_t __uint_fast8_t;
typedef __uint32_t __uint_fast16_t;
typedef __uint32_t __uint_fast32_t;
typedef __uint64_t __uint_fast64_t;
typedef __uint8_t __uint_least8_t;
typedef __uint16_t __uint_least16_t;
typedef __uint32_t __uint_least32_t;
typedef __uint64_t __uint_least64_t;
typedef __uint32_t __u_register_t;
typedef __uint32_t __vm_offset_t;
typedef __int64_t __vm_ooffset_t;
typedef __uint32_t __vm_paddr_t;
typedef __uint64_t __vm_pindex_t;
typedef __uint32_t __vm_size_t;
typedef __builtin_va_list __va_list;
typedef __va_list __gnuc_va_list;
# 34 "/usr/include/sys/_types.h" 2 3 4
typedef __int32_t __clockid_t;
typedef __uint32_t __fflags_t;
typedef __uint64_t __fsblkcnt_t;
typedef __uint64_t __fsfilcnt_t;
typedef __uint32_t __gid_t;
typedef __int64_t __id_t;
typedef __uint32_t __ino_t;
typedef long __key_t;
typedef __uint16_t __mode_t;
typedef int __nl_item;
typedef __uint16_t __nlink_t;
typedef __int64_t __off_t;
typedef __int32_t __pid_t;
typedef __int64_t __rlim_t;
typedef __uint8_t __sa_family_t;
typedef __uint32_t __socklen_t;
typedef long __suseconds_t;
typedef __int32_t __timer_t;
typedef __uint32_t __udev_t;
typedef __uint32_t __uid_t;
typedef unsigned int __useconds_t;
# 78 "/usr/include/sys/_types.h" 3 4
typedef int __ct_rune_t;
typedef __ct_rune_t __rune_t;
typedef __ct_rune_t __wchar_t;
typedef __ct_rune_t __wint_t;
# 90 "/usr/include/sys/_types.h" 3 4
typedef __udev_t __dev_t;
typedef union {
char __mbstate8[128];
__int64_t _mbstateL;
} __mbstate_t;
# 42 "/usr/include/machine/endian.h" 2 3 4
# 97 "/usr/include/machine/endian.h" 3 4
static __inline __uint64_t
__bswap64(__uint64_t _x)
{
return ((_x >> 56) | ((_x >> 40) & 0xff00) | ((_x >> 24) & 0xff0000) |
((_x >> 8) & 0xff000000) | ((_x << 8) & ((__uint64_t)0xff << 32)) |
((_x << 24) & ((__uint64_t)0xff << 40)) |
((_x << 40) & ((__uint64_t)0xff << 48)) | ((_x << 56)));
}
static __inline __uint32_t
__bswap32(__uint32_t _x)
{
return (__extension__ ({ register __uint32_t __X = (_x); __asm ("xchgb %h0, %b0\n\trorl $16, %0\n\txchgb %h0, %b0" : "+q" (__X)); __X; }));
}
static __inline __uint16_t
__bswap16(__uint16_t _x)
{
return (__extension__ ({ register __uint16_t __X = (_x); __asm ("xchgb %h0, %b0" : "+q" (__X)); __X; }));
}
# 58 "../include/sys/types.h" 2 3 4
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;
typedef __uint8_t uint8_t;
typedef __uint16_t uint16_t;
typedef __uint32_t uint32_t;
typedef __uint64_t uint64_t;
typedef __intptr_t intptr_t;
typedef __uintptr_t uintptr_t;
typedef __uint8_t u_int8_t;
typedef __uint16_t u_int16_t;
typedef __uint32_t u_int32_t;
typedef __uint64_t u_int64_t;
typedef __uint64_t u_quad_t;
typedef __int64_t quad_t;
typedef quad_t * qaddr_t;
typedef char * caddr_t;
typedef const char * c_caddr_t;
typedef volatile char *v_caddr_t;
typedef __clock_t clock_t;
typedef __clockid_t clockid_t;
typedef __critical_t critical_t;
typedef __int64_t daddr_t;
typedef __dev_t dev_t;
typedef __fflags_t fflags_t;
typedef __uint32_t fixpt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
typedef __gid_t gid_t;
typedef __uint32_t in_addr_t;
typedef __uint16_t in_port_t;
typedef __id_t id_t;
typedef __ino_t ino_t;
typedef __key_t key_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __off_t off_t;
typedef __pid_t pid_t;
typedef __register_t register_t;
typedef __rlim_t rlim_t;
typedef __segsz_t segsz_t;
typedef unsigned int size_t;
typedef __ssize_t ssize_t;
typedef __suseconds_t suseconds_t;
typedef __time_t time_t;
typedef __timer_t timer_t;
typedef __u_register_t u_register_t;
typedef __udev_t udev_t;
typedef __uid_t uid_t;
typedef __useconds_t useconds_t;
typedef __vm_offset_t vm_offset_t;
typedef __vm_ooffset_t vm_ooffset_t;
typedef __vm_paddr_t vm_paddr_t;
typedef __vm_pindex_t vm_pindex_t;
typedef __vm_size_t vm_size_t;
# 297 "../include/sys/types.h" 3 4
# 1 "/usr/include/sys/select.h" 1 3 4
# 42 "/usr/include/sys/select.h" 3 4
# 1 "/usr/include/sys/_sigset.h" 1 3 4
# 55 "/usr/include/sys/_sigset.h" 3 4
typedef struct __sigset {
__uint32_t __bits[4];
} __sigset_t;
# 43 "/usr/include/sys/select.h" 2 3 4
# 1 "/usr/include/sys/_timeval.h" 1 3 4
# 47 "/usr/include/sys/_timeval.h" 3 4
struct timeval {
long tv_sec;
suseconds_t tv_usec;
};
# 44 "/usr/include/sys/select.h" 2 3 4
# 1 "/usr/include/sys/timespec.h" 1 3 4
# 50 "/usr/include/sys/timespec.h" 3 4
struct timespec {
time_t tv_sec;
long tv_nsec;
};
# 45 "/usr/include/sys/select.h" 2 3 4
typedef unsigned long __fd_mask;
typedef __fd_mask fd_mask;
typedef __sigset_t sigset_t;
# 75 "/usr/include/sys/select.h" 3 4
typedef struct fd_set {
__fd_mask __fds_bits[(((1024U) + (((sizeof(__fd_mask) * 8)) - 1)) / ((sizeof(__fd_mask) * 8)))];
} fd_set;
# 101 "/usr/include/sys/select.h" 3 4
int pselect(int, fd_set *, fd_set *, fd_set *,
const struct timespec *, const sigset_t *);
int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
# 298 "../include/sys/types.h" 2 3 4
# 316 "../include/sys/types.h" 3 4
int ftruncate(int, off_t);
off_t lseek(int, off_t, int);
void * mmap(void *, size_t, int, int, int, off_t);
int truncate(const char *, off_t);
# 31 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 49 "../../../../gcc/gcc/intl/dcigettext.c"
# 1 "/usr/include/errno.h" 1 3 4
# 47 "/usr/include/errno.h" 3 4
int * __error(void);
# 50 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 1 "../include/stddef.h" 1 3 4
# 151 "../include/stddef.h" 3 4
typedef int ptrdiff_t;
# 314 "../include/stddef.h" 3 4
typedef __rune_t rune_t;
# 325 "../include/stddef.h" 3 4
typedef int wchar_t;
# 58 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 1 "../include/stdlib.h" 1 3 4
# 81 "../include/stdlib.h" 3 4
typedef struct {
int quot;
int rem;
} div_t;
typedef struct {
long quot;
long rem;
} ldiv_t;
# 100 "../include/stdlib.h" 3 4
extern int __mb_cur_max;
void abort(void) __attribute__((__noreturn__));
int abs(int) __attribute__((__const__));
int atexit(void (*)(void));
double atof(const char *);
int atoi(const char *);
long atol(const char *);
void *bsearch(const void *, const void *, size_t,
size_t, int (*)(const void *, const void *));
void *calloc(size_t, size_t);
div_t div(int, int) __attribute__((__const__));
void exit(int) __attribute__((__noreturn__));
void free(void *);
char *getenv(const char *);
long labs(long) __attribute__((__const__));
ldiv_t ldiv(long, long) __attribute__((__const__));
void *malloc(size_t);
int mblen(const char *, size_t);
size_t mbstowcs(wchar_t * , const char * , size_t);
int mbtowc(wchar_t * , const char * , size_t);
void qsort(void *, size_t, size_t,
int (*)(const void *, const void *));
int rand(void);
void *realloc(void *, size_t);
void srand(unsigned);
double strtod(const char * , char ** );
float strtof(const char * , char ** );
long strtol(const char * , char ** , int);
long double
strtold(const char * , char ** );
unsigned long
strtoul(const char * , char ** , int);
int system(const char *);
int wctomb(char *, wchar_t);
size_t wcstombs(char * , const wchar_t * , size_t);
# 152 "../include/stdlib.h" 3 4
typedef struct {
long long quot;
long long rem;
} lldiv_t;
long long
atoll(const char *);
long long
llabs(long long) __attribute__((__const__));
lldiv_t lldiv(long long, long long) __attribute__((__const__));
long long
strtoll(const char * , char ** , int);
unsigned long long
strtoull(const char * , char ** , int);
void _Exit(int) __attribute__((__noreturn__));
# 183 "../include/stdlib.h" 3 4
int rand_r(unsigned *);
int setenv(const char *, const char *, int);
void unsetenv(const char *);
# 197 "../include/stdlib.h" 3 4
double drand48(void);
double erand48(unsigned short[3]);
int getsubopt(char **, char *const *, char **);
int grantpt(int);
char *initstate(unsigned long , char *, long);
long jrand48(unsigned short[3]);
void lcong48(unsigned short[7]);
long lrand48(void);
int mkstemp(char *);
char *mktemp(char *);
long mrand48(void);
long nrand48(unsigned short[3]);
int posix_openpt(int);
char *ptsname(int);
int putenv(const char *);
long random(void);
char *realpath(const char *, char resolved_path[]);
unsigned short
*seed48(unsigned short[3]);
int setkey(const char *);
char *setstate( char *);
void srand48(long);
void srandom(unsigned long);
int unlockpt(int);
extern const char *_malloc_options;
extern void (*_malloc_message)(const char *, const char *, const char *,
const char *);
void *__builtin_alloca(size_t);
__uint32_t
arc4random(void);
void arc4random_addrandom(unsigned char *dat, int datlen);
void arc4random_stir(void);
char *getbsize(int *, long *);
char *cgetcap(char *, const char *, int);
int cgetclose(void);
int cgetent(char **, char **, const char *);
int cgetfirst(char **, char **);
int cgetmatch(const char *, const char *);
int cgetnext(char **, char **);
int cgetnum(char *, const char *, long *);
int cgetset(const char *);
int cgetstr(char *, const char *, char **);
int cgetustr(char *, const char *, char **);
int daemon(int, int);
char *devname(int, int);
int getloadavg(double [], int);
const char *
getprogname(void);
int heapsort(void *, size_t, size_t, int (*)(const void *, const void *));
int mergesort(void *, size_t, size_t, int (*)(const void *, const void *));
void qsort_r(void *, size_t, size_t, void *,
int (*)(void *, const void *, const void *));
int radixsort(const unsigned char **, int, const unsigned char *,
unsigned);
void *reallocf(void *, size_t);
void setprogname(const char *);
int sradixsort(const unsigned char **, int, const unsigned char *,
unsigned);
void sranddev(void);
void srandomdev(void);
__int64_t
strtoq(const char *, char **, int);
__uint64_t
strtouq(const char *, char **, int);
# 59 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 1 "/usr/include/string.h" 1 3 4
# 48 "/usr/include/string.h" 3 4
# 1 "/usr/include/strings.h" 1 3 4
# 40 "/usr/include/strings.h" 3 4
int bcmp(const void *, const void *, size_t);
void bcopy(const void *, void *, size_t);
void bzero(void *, size_t);
int ffs(int);
char *index(const char *, int);
char *rindex(const char *, int);
int strcasecmp(const char *, const char *);
int strncasecmp(const char *, const char *, size_t);
# 49 "/usr/include/string.h" 2 3 4
# 60 "/usr/include/string.h" 3 4
void *memccpy(void * , const void * , int, size_t);
void *memchr(const void *, int, size_t);
int memcmp(const void *, const void *, size_t);
void *memcpy(void * , const void * , size_t);
void *memmove(void *, const void *, size_t);
void *memset(void *, int, size_t);
char *stpcpy(char *, const char *);
char *strcasestr(const char *, const char *);
char *strcat(char * , const char * );
char *strchr(const char *, int);
int strcmp(const char *, const char *);
int strcoll(const char *, const char *);
char *strcpy(char * , const char * );
size_t strcspn(const char *, const char *);
char *strdup(const char *);
char *strerror(int);
int strerror_r(int, char *, size_t);
size_t strlcat(char *, const char *, size_t);
size_t strlcpy(char *, const char *, size_t);
size_t strlen(const char *);
void strmode(int, char *);
char *strncat(char * , const char * , size_t);
int strncmp(const char *, const char *, size_t);
char *strncpy(char * , const char * , size_t);
char *strnstr(const char *, const char *, size_t);
char *strpbrk(const char *, const char *);
char *strrchr(const char *, int);
char *strsep(char **, const char *);
char *strsignal(int);
size_t strspn(const char *, const char *);
char *strstr(const char *, const char *);
char *strtok(char * , const char * );
char *strtok_r(char *, const char *, char **);
size_t strxfrm(char * , const char * , size_t);
void swab(const void *, void *, size_t);
# 61 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 1 "../include/unistd.h" 1 3 4
# 51 "../include/unistd.h" 3 4
# 1 "/usr/include/sys/unistd.h" 1 3 4
# 52 "../include/unistd.h" 2 3 4
# 334 "../include/unistd.h" 3 4
void _exit(int) __attribute__((__noreturn__));
int access(const char *, int);
unsigned int alarm(unsigned int);
int chdir(const char *);
int chown(const char *, uid_t, gid_t);
int close(int);
int dup(int);
int dup2(int, int);
int eaccess(const char *, int);
int execl(const char *, const char *, ...);
int execle(const char *, const char *, ...);
int execlp(const char *, const char *, ...);
int execv(const char *, char * const *);
int execve(const char *, char * const *, char * const *);
int execvp(const char *, char * const *);
pid_t fork(void);
long fpathconf(int, int);
char *getcwd(char *, size_t);
gid_t getegid(void);
uid_t geteuid(void);
gid_t getgid(void);
int getgroups(int, gid_t []);
char *getlogin(void);
pid_t getpgrp(void);
pid_t getpid(void);
pid_t getppid(void);
uid_t getuid(void);
int isatty(int);
int link(const char *, const char *);
long pathconf(const char *, int);
int pause(void);
int pipe(int *);
ssize_t read(int, void *, size_t);
int rmdir(const char *);
int setgid(gid_t);
int setpgid(pid_t, pid_t);
void setproctitle(const char *_fmt, ...) ;
pid_t setsid(void);
int setuid(uid_t);
unsigned int sleep(unsigned int);
long sysconf(int);
pid_t tcgetpgrp(int);
int tcsetpgrp(int, pid_t);
char *ttyname(int);
int unlink(const char *);
ssize_t write(int, const void *, size_t);
size_t confstr(int, char *, size_t);
int getopt(int, char * const [], const char *);
extern char *optarg;
extern int optind, opterr, optopt;
int fsync(int);
# 411 "../include/unistd.h" 3 4
int getlogin_r(char *, int);
int fchown(int, uid_t, gid_t);
int readlink(const char *, char *, int);
int gethostname(char *, int );
int setegid(gid_t);
int seteuid(uid_t);
# 431 "../include/unistd.h" 3 4
int symlink(const char * , const char * );
char *crypt(const char *, const char *);
int encrypt(char *, int);
int fchdir(int);
long gethostid(void);
int getpgid(pid_t _pid);
int getsid(pid_t _pid);
char *getwd(char *);
int lchown(const char *, uid_t, gid_t);
int lockf(int, int, off_t);
int nice(int);
ssize_t pread(int, void *, size_t, off_t);
ssize_t pwrite(int, const void *, size_t, off_t);
int setpgrp(pid_t _pid, pid_t _pgrp);
int setregid(gid_t, gid_t);
int setreuid(uid_t, uid_t);
void sync(void);
useconds_t ualarm(useconds_t, useconds_t);
int usleep(useconds_t);
pid_t vfork(void);
# 466 "../include/unistd.h" 3 4
int brk(const void *);
int chroot(const char *);
int getdtablesize(void);
int getpagesize(void) __attribute__((__const__));
char *getpass(const char *);
void *sbrk(intptr_t);
struct timeval;
int acct(const char *);
int async_daemon(void);
int check_utility_compat(const char *);
const char *
crypt_get_format(void);
int crypt_set_format(const char *);
int des_cipher(const char *, char *, long, int);
int des_setkey(const char *key);
void endusershell(void);
int exect(const char *, char * const *, char * const *);
char *fflagstostr(u_long);
int getdomainname(char *, int);
int getgrouplist(const char *, gid_t, gid_t *, int *);
mode_t getmode(const void *, mode_t);
int getpeereid(int, uid_t *, gid_t *);
int getresgid(gid_t *, gid_t *, gid_t *);
int getresuid(uid_t *, uid_t *, uid_t *);
char *getusershell(void);
int initgroups(const char *, gid_t);
int iruserok(unsigned long, int, const char *, const char *);
int iruserok_sa(const void *, int, int, const char *, const char *);
int issetugid(void);
char *mkdtemp(char *);
int mknod(const char *, mode_t, dev_t);
int mkstemps(char *, int);
int nfsclnt(int, void *);
int nfssvc(int, void *);
int profil(char *, size_t, vm_offset_t, int);
int rcmd(char **, int, const char *, const char *, const char *, int *);
int rcmd_af(char **, int, const char *,
const char *, const char *, int *, int);
int rcmdsh(char **, int, const char *,
const char *, const char *, const char *);
char *re_comp(const char *);
int re_exec(const char *);
int reboot(int);
int revoke(const char *);
pid_t rfork(int);
pid_t rfork_thread(int, void *, int (*)(void *), void *);
int rresvport(int *);
int rresvport_af(int *, int);
int ruserok(const char *, int, const char *, const char *);
int setdomainname(const char *, int);
int setgroups(int, const gid_t *);
void sethostid(long);
int sethostname(const char *, int);
int setlogin(const char *);
void *setmode(const char *);
int setresgid(gid_t, gid_t, gid_t);
int setresuid(uid_t, uid_t, uid_t);
int setrgid(gid_t);
int setruid(uid_t);
void setusershell(void);
int strtofflags(char **, u_long *, u_long *);
int swapon(const char *);
int swapoff(const char *);
int syscall(int, ...);
off_t __syscall(quad_t, ...);
int ttyslot(void);
int undelete(const char *);
int unwhiteout(const char *);
void *valloc(size_t);
extern char *suboptarg;
extern int optreset;
# 69 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 1 "/usr/include/locale.h" 1 3 4
# 40 "/usr/include/locale.h" 3 4
struct lconv {
char *decimal_point;
char *thousands_sep;
char *grouping;
char *int_curr_symbol;
char *currency_symbol;
char *mon_decimal_point;
char *mon_thousands_sep;
char *mon_grouping;
char *positive_sign;
char *negative_sign;
char int_frac_digits;
char frac_digits;
char p_cs_precedes;
char p_sep_by_space;
char n_cs_precedes;
char n_sep_by_space;
char p_sign_posn;
char n_sign_posn;
char int_p_cs_precedes;
char int_n_cs_precedes;
char int_p_sep_by_space;
char int_n_sep_by_space;
char int_p_sign_posn;
char int_n_sign_posn;
};
# 83 "/usr/include/locale.h" 3 4
struct lconv *localeconv(void);
char *setlocale(int, const char *);
# 72 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 1 "/usr/include/sys/param.h" 1 3 4
# 75 "/usr/include/sys/param.h" 3 4
# 1 "/usr/include/sys/syslimits.h" 1 3 4
# 76 "/usr/include/sys/param.h" 2 3 4
# 101 "/usr/include/sys/param.h" 3 4
# 1 "/usr/include/sys/signal.h" 1 3 4
# 49 "/usr/include/sys/signal.h" 3 4
# 1 "/usr/include/machine/signal.h" 1 3 4
# 47 "/usr/include/machine/signal.h" 3 4
typedef int sig_atomic_t;
# 58 "/usr/include/machine/signal.h" 3 4
# 1 "/usr/include/machine/trap.h" 1 3 4
# 59 "/usr/include/machine/signal.h" 2 3 4
# 100 "/usr/include/machine/signal.h" 3 4
struct sigcontext {
struct __sigset sc_mask;
int sc_onstack;
int sc_gs;
int sc_fs;
int sc_es;
int sc_ds;
int sc_edi;
int sc_esi;
int sc_ebp;
int sc_isp;
int sc_ebx;
int sc_edx;
int sc_ecx;
int sc_eax;
int sc_trapno;
int sc_err;
int sc_eip;
int sc_cs;
int sc_efl;
int sc_esp;
int sc_ss;
int sc_len;
int sc_fpformat;
int sc_ownedfp;
int sc_spare1[1];
int sc_fpstate[128] __attribute__((__aligned__(16)));
int sc_spare2[8];
};
# 50 "/usr/include/sys/signal.h" 2 3 4
# 144 "/usr/include/sys/signal.h" 3 4
typedef void __sighandler_t(int);
# 154 "/usr/include/sys/signal.h" 3 4
union sigval {
int sigval_int;
void *sigval_ptr;
};
struct sigevent {
int sigev_notify;
union {
int __sigev_signo;
int __sigev_notify_kqueue;
} __sigev_u;
union sigval sigev_value;
};
# 189 "/usr/include/sys/signal.h" 3 4
typedef struct __siginfo {
int si_signo;
int si_errno;
int si_code;
__pid_t si_pid;
__uid_t si_uid;
int si_status;
void *si_addr;
union sigval si_value;
long si_band;
int __spare__[7];
} siginfo_t;
struct __siginfo;
struct sigaction {
union {
void (*__sa_handler)(int);
void (*__sa_sigaction)(int, struct __siginfo *, void *);
} __sigaction_u;
int sa_flags;
sigset_t sa_mask;
};
# 267 "/usr/include/sys/signal.h" 3 4
typedef __sighandler_t *sig_t;
typedef void __siginfohandler_t(int, struct __siginfo *, void *);
typedef struct sigaltstack {
char *ss_sp;
__size_t ss_size;
int ss_flags;
} stack_t;
# 295 "/usr/include/sys/signal.h" 3 4
struct sigvec {
__sighandler_t *sv_handler;
int sv_mask;
int sv_flags;
};
# 322 "/usr/include/sys/signal.h" 3 4
struct sigstack {
char *ss_sp;
int ss_onstack;
};
# 354 "/usr/include/sys/signal.h" 3 4
__sighandler_t *signal(int, __sighandler_t *);
# 102 "/usr/include/sys/param.h" 2 3 4
# 1 "/usr/include/machine/param.h" 1 3 4
# 106 "/usr/include/sys/param.h" 2 3 4
# 1 "/usr/include/sys/limits.h" 1 3 4
# 40 "/usr/include/sys/limits.h" 3 4
# 1 "/usr/include/machine/_limits.h" 1 3 4
# 41 "/usr/include/sys/limits.h" 2 3 4
# 108 "/usr/include/sys/param.h" 2 3 4
# 75 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 1 "../../../../gcc/gcc/intl/gettextP.h" 1
# 23 "../../../../gcc/gcc/intl/gettextP.h"
# 1 "../include/stddef.h" 1 3 4
# 24 "../../../../gcc/gcc/intl/gettextP.h" 2
# 33 "../../../../gcc/gcc/intl/gettextP.h"
# 1 "../../../../gcc/gcc/intl/loadinfo.h" 1
# 64 "../../../../gcc/gcc/intl/loadinfo.h"
struct loaded_l10nfile
{
const char *filename;
int decided;
const void *data;
struct loaded_l10nfile *next;
struct loaded_l10nfile *successor[1];
};
extern const char *_nl_normalize_codeset (const char *codeset, size_t name_len);
extern struct loaded_l10nfile *
_nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list, const char *dirlist, size_t dirlist_len, int mask, const char *language, const char *territory, const char *codeset, const char *normalized_codeset, const char *modifier, const char *special, const char *sponsor, const char *revision, const char *filename, int do_allocate);
# 94 "../../../../gcc/gcc/intl/loadinfo.h"
extern const char *_nl_expand_alias (const char *name);
extern int _nl_explode_name (char *name, const char **language, const char **modifier, const char **territory, const char **codeset, const char **normalized_codeset, const char **special, const char **sponsor, const char **revision);
# 107 "../../../../gcc/gcc/intl/loadinfo.h"
extern char *_nl_find_language (const char *name);
# 34 "../../../../gcc/gcc/intl/gettextP.h" 2
# 1 "../../../../gcc/gcc/intl/gettext.h" 1
# 23 "../../../../gcc/gcc/intl/gettext.h"
# 1 "../include/limits.h" 1 3 4
# 11 "../include/limits.h" 3 4
# 1 "../include/syslimits.h" 1 3 4
# 1 "../include/limits.h" 1 3 4
# 122 "../include/limits.h" 3 4
# 1 "/usr/vol/opt/freebsd5/gcc34-200304/lib/gcc-lib/i686-pc-freebsd5/3.4/include/limits.h" 1 3 4
# 122 "/usr/vol/opt/freebsd5/gcc34-200304/lib/gcc-lib/i686-pc-freebsd5/3.4/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 123 "/usr/vol/opt/freebsd5/gcc34-200304/lib/gcc-lib/i686-pc-freebsd5/3.4/include/limits.h" 2 3 4
# 123 "../include/limits.h" 2 3 4
# 8 "../include/syslimits.h" 2 3 4
# 12 "../include/limits.h" 2 3 4
# 24 "../../../../gcc/gcc/intl/gettext.h" 2
# 54 "../../../../gcc/gcc/intl/gettext.h"
typedef unsigned int nls_uint32;
# 71 "../../../../gcc/gcc/intl/gettext.h"
struct mo_file_header
{
nls_uint32 magic;
nls_uint32 revision;
nls_uint32 nstrings;
nls_uint32 orig_tab_offset;
nls_uint32 trans_tab_offset;
nls_uint32 hash_tab_size;
nls_uint32 hash_tab_offset;
};
struct string_desc
{
nls_uint32 length;
nls_uint32 offset;
};
# 36 "../../../../gcc/gcc/intl/gettextP.h" 2
# 68 "../../../../gcc/gcc/intl/gettextP.h"
static __inline__ nls_uint32 SWAP (unsigned int);
static __inline__ nls_uint32
SWAP (ii)
unsigned int ii;
{
nls_uint32 i = ii;
return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
}
struct expression
{
int nargs;
enum operator
{
var,
num,
lnot,
mult,
divide,
module,
plus,
minus,
less_than,
greater_than,
less_or_equal,
greater_or_equal,
equal,
not_equal,
land,
lor,
qmop
} operation;
union
{
unsigned long int num;
struct expression *args[3];
} val;
};
struct parse_args
{
const char *cp;
struct expression *res;
};
struct loaded_domain
{
const char *data;
int use_mmap;
size_t mmap_size;
int must_swap;
nls_uint32 nstrings;
struct string_desc *orig_tab;
struct string_desc *trans_tab;
nls_uint32 hash_size;
nls_uint32 *hash_tab;
int codeset_cntr;
char **conv_tab;
struct expression *plural;
unsigned long int nplurals;
};
# 161 "../../../../gcc/gcc/intl/gettextP.h"
struct binding
{
struct binding *next;
char *dirname;
int codeset_cntr;
char *codeset;
char domainname[1];
};
extern int _nl_msg_cat_cntr;
struct loaded_l10nfile *_nl_find_domain (const char *__dirname, char *__locale, const char *__domainname, struct binding *__domainbinding)
;
void _nl_load_domain (struct loaded_l10nfile *__domain, struct binding *__domainbinding)
;
void _nl_unload_domain (struct loaded_domain *__domain)
;
const char *_nl_init_domain_conv (struct loaded_l10nfile *__domain_file, struct loaded_domain *__domain, struct binding *__domainbinding)
;
void _nl_free_domain_conv (struct loaded_domain *__domain)
;
char *_nl_find_msg (struct loaded_l10nfile *domain_file, struct binding *domainbinding, const char *msgid, size_t *lengthp)
;
extern const char *locale_charset (void) ;
# 225 "../../../../gcc/gcc/intl/gettextP.h"
extern char *gettext__ (const char *__msgid);
extern char *dgettext__ (const char *__domainname, const char *__msgid);
extern char *dcgettext__ (const char *__domainname, const char *__msgid, int __category);
extern char *ngettext__ (const char *__msgid1, const char *__msgid2, unsigned long int __n);
extern char *dngettext__ (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n);
extern char *dcngettext__ (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category);
extern char *dcigettext__ (const char *__domainname, const char *__msgid1, const char *__msgid2, int __plural, unsigned long int __n, int __category);
extern char *textdomain__ (const char *__domainname);
extern char *bindtextdomain__ (const char *__domainname, const char *__dirname);
extern char *bind_textdomain_codeset__ (const char *__domainname, const char *__codeset);
# 254 "../../../../gcc/gcc/intl/gettextP.h"
extern void gettext_free_exp__ (struct expression *exp)
;
extern int gettextparse__ (void *arg);
# 78 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 1 "../../../../gcc/gcc/intl/libgnuintl.h" 1
# 60 "../../../../gcc/gcc/intl/libgnuintl.h"
extern char *gettext (const char *__msgid);
extern char *dgettext (const char *__domainname, const char *__msgid);
extern char *dcgettext (const char *__domainname, const char *__msgid, int __category);
extern char *ngettext (const char *__msgid1, const char *__msgid2, unsigned long int __n);
extern char *dngettext (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n);
extern char *dcngettext (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category);
extern char *textdomain (const char *__domainname);
extern char *bindtextdomain (const char *__domainname, const char *__dirname);
extern char *bind_textdomain_codeset (const char *__domainname, const char *__codeset);
# 82 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 1 "../../../../gcc/gcc/intl/hash-string.h" 1
# 36 "../../../../gcc/gcc/intl/hash-string.h"
static unsigned long int hash_string (const char *__str_param);
static __inline__ unsigned long int
hash_string (str_param)
const char *str_param;
{
unsigned long int hval, g;
const char *str = str_param;
hval = 0;
while (*str != '\0')
{
hval <<= 4;
hval += (unsigned long int) *str++;
g = hval & ((unsigned long int) 0xf << (32 - 4));
if (g != 0)
{
hval ^= g >> (32 - 8);
hval ^= g;
}
}
return hval;
}
# 84 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 146 "../../../../gcc/gcc/intl/dcigettext.c"
static void *mempcpy (void *dest, const void *src, size_t n);
# 158 "../../../../gcc/gcc/intl/dcigettext.c"
# 1 "../include/limits.h" 1 3 4
# 159 "../../../../gcc/gcc/intl/dcigettext.c" 2
# 216 "../../../../gcc/gcc/intl/dcigettext.c"
struct known_translation_t
{
char *domainname;
int category;
int counter;
struct loaded_l10nfile *domain;
const char *translation;
size_t translation_length;
char msgid[1];
};
# 1 "/usr/include/search.h" 1 3 4
# 20 "/usr/include/search.h" 3 4
typedef struct entry {
char *key;
void *data;
} ENTRY;
typedef enum {
FIND, ENTER
} ACTION;
typedef enum {
preorder,
postorder,
endorder,
leaf
} VISIT;
# 48 "/usr/include/search.h" 3 4
int hcreate(size_t);
void hdestroy(void);
ENTRY *hsearch(ENTRY, ACTION);
void insque(void *, void *);
void *lfind(const void *, const void *, size_t *, size_t,
int (*)(const void *, const void *));
void *lsearch(const void *, void *, size_t *, size_t,
int (*)(const void *, const void *));
void remque(void *);
void *tdelete(const void * , void ** ,
int (*)(const void *, const void *));
void *tfind(const void *, void * const *,
int (*)(const void *, const void *));
void *tsearch(const void *, void **, int (*)(const void *, const void *));
void twalk(const void *, void (*)(const void *, VISIT, int));
# 242 "../../../../gcc/gcc/intl/dcigettext.c" 2
static void *root;
static int transcmp (const void *p1, const void *p2);
static int
transcmp (p1, p2)
const void *p1;
const void *p2;
{
const struct known_translation_t *s1;
const struct known_translation_t *s2;
int result;
s1 = (const struct known_translation_t *) p1;
s2 = (const struct known_translation_t *) p2;
result = strcmp (s1->msgid, s2->msgid);
if (result == 0)
{
result = strcmp (s1->domainname, s2->domainname);
if (result == 0)
result = s1->category - s2->category;
}
return result;
}
const char _nl_default_default_domain__[] = "messages";
const char *_nl_current_default_domain__ = _nl_default_default_domain__;
const char _nl_default_dirname__[] = "/usr/vol/opt/freebsd5/gcc34-200304/share/locale";
struct binding *_nl_domain_bindings__;
static char *plural_lookup (struct loaded_l10nfile *domain, unsigned long int n, const char *translation, size_t translation_len)
;
static unsigned long int plural_eval (struct expression *pexp, unsigned long int n)
;
static const char *category_to_name (int category) ;
static const char *guess_category_value (int category, const char *categoryname)
;
# 352 "../../../../gcc/gcc/intl/dcigettext.c"
typedef unsigned char transmem_block_t;
# 389 "../../../../gcc/gcc/intl/dcigettext.c"
static int enable_secure;
# 404 "../../../../gcc/gcc/intl/dcigettext.c"
char *
dcigettext__ (domainname, msgid1, msgid2, plural, n, category)
const char *domainname;
const char *msgid1;
const char *msgid2;
int plural;
unsigned long int n;
int category;
{
struct loaded_l10nfile *domain;
struct binding *binding;
const char *categoryname;
const char *categoryvalue;
char *dirname, *xdomainname;
char *single_locale;
char *retval;
size_t retlen;
int saved_errno;
struct known_translation_t *search;
struct known_translation_t **foundp = ((void *)0);
size_t msgid_len;
size_t domainname_len;
if (msgid1 == ((void *)0))
return ((void *)0);
;
if (domainname == ((void *)0))
domainname = _nl_current_default_domain__;
msgid_len = strlen (msgid1) + 1;
search = (struct known_translation_t *)
__builtin_alloca (((size_t) &((struct known_translation_t *)0)->msgid) + msgid_len);
memcpy (search->msgid, msgid1, msgid_len);
search->domainname = (char *) domainname;
search->category = category;
foundp = (struct known_translation_t **) tfind (search, &root, transcmp);
if (foundp != ((void *)0) && (*foundp)->counter == _nl_msg_cat_cntr)
{
if (plural)
retval = plural_lookup ((*foundp)->domain, n, (*foundp)->translation,
(*foundp)->translation_length);
else
retval = (char *) (*foundp)->translation;
;
return retval;
}
saved_errno = (* __error());
if (enable_secure == 0) { if (getuid () != geteuid () || getgid () != getegid ()) enable_secure = 1; else enable_secure = -1; };
for (binding = _nl_domain_bindings__; binding != ((void *)0); binding = binding->next)
{
int compare = strcmp (domainname, binding->domainname);
if (compare == 0)
break;
if (compare < 0)
{
binding = ((void *)0);
break;
}
}
if (binding == ((void *)0))
dirname = (char *) _nl_default_dirname__;
else if ((((binding->dirname)[0]) == '/'))
dirname = binding->dirname;
else
{
size_t dirname_len = strlen (binding->dirname) + 1;
size_t path_max;
char *ret;
path_max = (unsigned int) 1024;
path_max += 2;
for (;;)
{
dirname = (char *) __builtin_alloca (path_max + dirname_len);
;
(* __error()) = (0);
ret = getcwd (dirname, path_max);
if (ret != ((void *)0) || (* __error()) != 34)
break;
path_max += path_max / 2;
path_max += 32;
}
if (ret == ((void *)0))
{
;
;
(* __error()) = (saved_errno);
return (plural == 0
? (char *) msgid1
: n == 1 ? (char *) msgid1 : (char *) msgid2);
}
stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
}
categoryname = category_to_name (category);
categoryvalue = guess_category_value (category, categoryname);
domainname_len = strlen (domainname);
xdomainname = (char *) __builtin_alloca (strlen (categoryname)
+ domainname_len + 5);
;
stpcpy (mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
domainname, domainname_len),
".mo");
single_locale = (char *) __builtin_alloca (strlen (categoryvalue) + 1);
;
while (1)
{
while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
++categoryvalue;
if (categoryvalue[0] == '\0')
{
single_locale[0] = 'C';
single_locale[1] = '\0';
}
else
{
char *cp = single_locale;
while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
*cp++ = *categoryvalue++;
*cp = '\0';
if ((enable_secure == 1) && (strchr (single_locale, '/') != ((void *)0)))
continue;
}
if (strcmp (single_locale, "C") == 0
|| strcmp (single_locale, "POSIX") == 0)
{
;
;
(* __error()) = (saved_errno);
return (plural == 0
? (char *) msgid1
: n == 1 ? (char *) msgid1 : (char *) msgid2);
}
domain = _nl_find_domain (dirname, single_locale, xdomainname, binding);
if (domain != ((void *)0))
{
retval = _nl_find_msg (domain, binding, msgid1, &retlen);
if (retval == ((void *)0))
{
int cnt;
for (cnt = 0; domain->successor[cnt] != ((void *)0); ++cnt)
{
retval = _nl_find_msg (domain->successor[cnt], binding,
msgid1, &retlen);
if (retval != ((void *)0))
{
domain = domain->successor[cnt];
break;
}
}
}
if (retval != ((void *)0))
{
;
(* __error()) = (saved_errno);
if (foundp == ((void *)0))
{
struct known_translation_t *newp;
newp = (struct known_translation_t *)
malloc (((size_t) &((struct known_translation_t *)0)->msgid)
+ msgid_len + domainname_len + 1);
if (newp != ((void *)0))
{
newp->domainname =
mempcpy (newp->msgid, msgid1, msgid_len);
memcpy (newp->domainname, domainname, domainname_len + 1);
newp->category = category;
newp->counter = _nl_msg_cat_cntr;
newp->domain = domain;
newp->translation = retval;
newp->translation_length = retlen;
foundp = (struct known_translation_t **)
tsearch (newp, &root, transcmp);
if (foundp == ((void *)0)
|| (*foundp != newp))
free (newp);
}
}
else
{
(*foundp)->counter = _nl_msg_cat_cntr;
(*foundp)->domain = domain;
(*foundp)->translation = retval;
(*foundp)->translation_length = retlen;
}
if (plural)
retval = plural_lookup (domain, n, retval, retlen);
;
return retval;
}
}
}
}
char *
_nl_find_msg (domain_file, domainbinding, msgid, lengthp)
struct loaded_l10nfile *domain_file;
struct binding *domainbinding;
const char *msgid;
size_t *lengthp;
{
struct loaded_domain *domain;
size_t act;
char *result;
size_t resultlen;
if (domain_file->decided == 0)
_nl_load_domain (domain_file, domainbinding);
if (domain_file->data == ((void *)0))
return ((void *)0);
domain = (struct loaded_domain *) domain_file->data;
if (domain->hash_size > 2 && domain->hash_tab != ((void *)0))
{
nls_uint32 len = strlen (msgid);
nls_uint32 hash_val = hash_string (msgid);
nls_uint32 idx = hash_val % domain->hash_size;
nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
while (1)
{
nls_uint32 nstr = ((domain->must_swap) ? SWAP (domain->hash_tab[idx]) : (domain->hash_tab[idx]));
if (nstr == 0)
return ((void *)0);
if (((domain->must_swap) ? SWAP (domain->orig_tab[nstr - 1].length) : (domain->orig_tab[nstr - 1].length)) >= len
&& (strcmp (msgid,
domain->data + ((domain->must_swap) ? SWAP (domain->orig_tab[nstr - 1].offset) : (domain->orig_tab[nstr - 1].offset)))
== 0))
{
act = nstr - 1;
goto found;
}
if (idx >= domain->hash_size - incr)
idx -= domain->hash_size - incr;
else
idx += incr;
}
}
else
{
size_t top, bottom;
bottom = 0;
act = 0;
top = domain->nstrings;
while (bottom < top)
{
int cmp_val;
act = (bottom + top) / 2;
cmp_val = strcmp (msgid, (domain->data
+ ((domain->must_swap) ? SWAP (domain->orig_tab[act].offset) : (domain->orig_tab[act].offset))));
if (cmp_val < 0)
top = act;
else if (cmp_val > 0)
bottom = act + 1;
else
goto found;
}
return ((void *)0);
}
found:
result = ((char *) domain->data
+ ((domain->must_swap) ? SWAP (domain->trans_tab[act].offset) : (domain->trans_tab[act].offset)));
resultlen = ((domain->must_swap) ? SWAP (domain->trans_tab[act].length) : (domain->trans_tab[act].length)) + 1;
# 966 "../../../../gcc/gcc/intl/dcigettext.c"
*lengthp = resultlen;
return result;
}
static char *
plural_lookup (domain, n, translation, translation_len)
struct loaded_l10nfile *domain;
unsigned long int n;
const char *translation;
size_t translation_len;
{
struct loaded_domain *domaindata = (struct loaded_domain *) domain->data;
unsigned long int index;
const char *p;
index = plural_eval (domaindata->plural, n);
if (index >= domaindata->nplurals)
index = 0;
p = translation;
while (index-- > 0)
{
p = strchr (p, '\0');
p++;
if (p >= translation + translation_len)
return (char *) translation;
}
return (char *) p;
}
static unsigned long int
plural_eval (pexp, n)
struct expression *pexp;
unsigned long int n;
{
switch (pexp->nargs)
{
case 0:
switch (pexp->operation)
{
case var:
return n;
case num:
return pexp->val.num;
default:
break;
}
break;
case 1:
{
unsigned long int arg = plural_eval (pexp->val.args[0], n);
return ! arg;
}
case 2:
{
unsigned long int leftarg = plural_eval (pexp->val.args[0], n);
if (pexp->operation == lor)
return leftarg || plural_eval (pexp->val.args[1], n);
else if (pexp->operation == land)
return leftarg && plural_eval (pexp->val.args[1], n);
else
{
unsigned long int rightarg = plural_eval (pexp->val.args[1], n);
switch (pexp->operation)
{
case mult:
return leftarg * rightarg;
case divide:
return leftarg / rightarg;
case module:
return leftarg % rightarg;
case plus:
return leftarg + rightarg;
case minus:
return leftarg - rightarg;
case less_than:
return leftarg < rightarg;
case greater_than:
return leftarg > rightarg;
case less_or_equal:
return leftarg <= rightarg;
case greater_or_equal:
return leftarg >= rightarg;
case equal:
return leftarg == rightarg;
case not_equal:
return leftarg != rightarg;
default:
break;
}
}
break;
}
case 3:
{
unsigned long int boolarg = plural_eval (pexp->val.args[0], n);
return plural_eval (pexp->val.args[boolarg ? 1 : 2], n);
}
}
return 0;
}
static const char *
category_to_name (category)
int category;
{
const char *retval;
switch (category)
{
case 1:
retval = "LC_COLLATE";
break;
case 2:
retval = "LC_CTYPE";
break;
case 3:
retval = "LC_MONETARY";
break;
case 4:
retval = "LC_NUMERIC";
break;
case 5:
retval = "LC_TIME";
break;
case 6:
retval = "LC_MESSAGES";
break;
case 0:
retval = "LC_ALL";
break;
default:
retval = "LC_XXX";
}
return retval;
}
static const char *
guess_category_value (category, categoryname)
int category;
const char *categoryname;
{
const char *language;
const char *retval;
(void) category;
(void) categoryname;
language = getenv ("LANGUAGE");
if (language != ((void *)0) && language[0] == '\0')
language = ((void *)0);
# 1179 "../../../../gcc/gcc/intl/dcigettext.c"
retval = getenv ("LC_ALL");
if (retval == ((void *)0) || retval[0] == '\0')
{
retval = getenv (categoryname);
if (retval == ((void *)0) || retval[0] == '\0')
{
retval = getenv ("LANG");
if (retval == ((void *)0) || retval[0] == '\0')
return "C";
}
}
return language != ((void *)0) && strcmp (retval, "C") != 0 ? language : retval;
}
# 1218 "../../../../gcc/gcc/intl/dcigettext.c"
static void *
mempcpy (dest, src, n)
void *dest;
const void *src;
size_t n;
{
return (void *) ((char *) memcpy (dest, src, n) + n);
}
--=-=-=
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=dcigettext.s
.file "dcigettext.c"
.section .debug_abbrev,"",@progbits
.Ldebug_abbrev0:
.section .debug_info,"",@progbits
.Ldebug_info0:
.section .debug_line,"",@progbits
.Ldebug_line0:
.text
.Ltext0:
.p2align 4,,15
.type transcmp, @function
transcmp:
.LFB8:
.file 1 "../../../../gcc/gcc/intl/dcigettext.c"
.loc 1 255 0
pushl %ebp
.LCFI0:
movl %esp, %ebp
.LCFI1:
subl $24, %esp
.LCFI2:
movl %ebx, -8(%ebp)
.LCFI3:
movl 8(%ebp), %ebx
movl %esi, -4(%ebp)
.LCFI4:
movl 12(%ebp), %esi
.loc 1 263 0
leal 24(%ebx), %edx
movl %edx, (%esp)
leal 24(%esi), %eax
movl %eax, 4(%esp)
call strcmp
.loc 1 264 0
testl %eax, %eax
jne .L2
.loc 1 266 0
movl (%esi), %eax
movl %eax, 4(%esp)
movl (%ebx), %eax
movl %eax, (%esp)
call strcmp
.loc 1 267 0
testl %eax, %eax
jne .L2
.loc 1 271 0
movl 4(%ebx), %eax
movl 4(%esi), %edx
subl %edx, %eax
.p2align 4,,15
.L2:
.loc 1 275 0
movl -8(%ebp), %ebx
movl -4(%ebp), %esi
movl %ebp, %esp
popl %ebp
ret
.LFE8:
.size transcmp, .-transcmp
.globl _nl_default_default_domain__
.section .rodata
.type _nl_default_default_domain__, @object
.size _nl_default_default_domain__, 9
_nl_default_default_domain__:
.string "messages"
.globl _nl_current_default_domain__
.data
.align 4
.type _nl_current_default_domain__, @object
.size _nl_current_default_domain__, 4
_nl_current_default_domain__:
.long _nl_default_default_domain__
.globl _nl_default_dirname__
.section .rodata
.align 32
.type _nl_default_dirname__, @object
.size _nl_default_dirname__, 48
_nl_default_dirname__:
.string "/usr/vol/opt/freebsd5/gcc34-200304/share/locale"
--=-=-=
Hope this helps.
Thanx, Arno
--=-=-=--
next reply other threads:[~2003-05-16 21:06 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-16 21:06 arno [this message]
-- strict thread matches above, loose matches on Subject: below --
2003-05-16 22:46 arno
2003-05-16 22:23 giovannibajo
2003-05-16 20:38 bangerth
2003-05-16 17:46 arno
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030516210601.2476.qmail@sources.redhat.com \
--to=arno@heho.snv.jussieu.fr \
--cc=gcc-prs@gcc.gnu.org \
--cc=nobody@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).