scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

commit 87e4396fb51faf4eac6fbd0a853e8c9d93c88fa2
parent ad5bd51963863fe5a3c3ad58a1ae42d578aa8980
Author: Roberto E. Vargas Caballero <k0ga@shike2.net>
Date:   Tue, 18 Nov 2025 15:26:53 +0100

include: Remove extern in function declarations

This was introduced some time ago to follow some style
but it does not help so much, and it only makes longer
the declaration of the functions.

Diffstat:
Minclude/scc/assert.h | 4++--
Minclude/scc/bits/darwin/sys.h | 14+++++++-------
Minclude/scc/bits/dragonfly/sys.h | 14+++++++-------
Minclude/scc/bits/freebsd/sys.h | 14+++++++-------
Minclude/scc/bits/linux/amd64/arch/sigaction.h | 2+-
Minclude/scc/bits/linux/arm/arch/sigaction.h | 2+-
Minclude/scc/bits/linux/arm64/arch/sigaction.h | 2+-
Minclude/scc/bits/linux/i386/arch/sigaction.h | 2+-
Minclude/scc/bits/linux/ppc/arch/sigaction.h | 2+-
Minclude/scc/bits/linux/sys.h | 14+++++++-------
Minclude/scc/bits/netbsd/sys.h | 14+++++++-------
Minclude/scc/bits/openbsd/sys.h | 14+++++++-------
Minclude/scc/bits/scc/coff32.h | 2+-
Minclude/scc/bits/scc/elf64.h | 2+-
Minclude/scc/bits/scc/mach.h | 50+++++++++++++++++++++++++-------------------------
Minclude/scc/bits/scc/scc.h | 36++++++++++++++++++------------------
Minclude/scc/ctype.h | 28++++++++++++++--------------
Minclude/scc/inttypes.h | 12++++++------
Minclude/scc/locale.h | 4++--
Minclude/scc/setjmp.h | 4++--
Minclude/scc/stdio.h | 92++++++++++++++++++++++++++++++++++++++++----------------------------------------
Minclude/scc/stdlib.h | 72++++++++++++++++++++++++++++++++++++------------------------------------
Minclude/scc/string.h | 44++++++++++++++++++++++----------------------
Minclude/scc/time.h | 18+++++++++---------
Minclude/scc/wchar.h | 144++++++++++++++++++++++++++++++++++++++++----------------------------------------
Minclude/scc/wctype.h | 36++++++++++++++++++------------------
Msrc/cmd/scc-as/as.h | 60++++++++++++++++++++++++++++++------------------------------
Msrc/cmd/scc-cc/cc1/cc1.h | 150++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/cmd/scc-cc/cc2/cc2.h | 88++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/cmd/scc-ld/ld.h | 36++++++++++++++++++------------------
Msrc/cmd/scc-make/make.h | 56++++++++++++++++++++++++++++----------------------------
Msrc/cmd/scc-objdump/objdump.h | 24++++++++++++------------
Msrc/libc/arch/linux/brk.h | 2+-
Msrc/libc/libc.h | 23+++++++++++------------
Msrc/libc/stdlib/malloc.h | 2+-
Msrc/libc/syscall.h | 20++++++++++----------
Msrc/libmach/coff32/fun.h | 34+++++++++++++++++-----------------
Msrc/libmach/elf/fun.h | 30+++++++++++++++---------------
Msrc/libmach/libmach.h | 6+++---
39 files changed, 586 insertions(+), 587 deletions(-)

diff --git a/include/scc/assert.h b/include/scc/assert.h @@ -1,7 +1,7 @@ #undef assert -extern void __assert(char *, char *, long); -extern void assert(int); +void __assert(char *, char *, long); +void assert(int); #ifndef NDEBUG # define assert(exp) ((exp) ? (void) 0 : __assert(#exp, __FILE__, __LINE__)) diff --git a/include/scc/bits/darwin/sys.h b/include/scc/bits/darwin/sys.h @@ -23,12 +23,12 @@ typedef int pid_t; struct sigaction; struct rusage; -extern int _execve(const char *, const char *[], char *const []); -extern int _fork(void); -extern pid_t _getpid(void); -extern int _kill(pid_t, int); -extern int _sigaction(int, struct sigaction *, struct sigaction *); -extern pid_t _wait4(pid_t, int *, int, struct rusage *); -extern pid_t _waitpid(pid_t, int *, int); +int _execve(const char *, const char *[], char *const []); +int _fork(void); +pid_t _getpid(void); +int _kill(pid_t, int); +int _sigaction(int, struct sigaction *, struct sigaction *); +pid_t _wait4(pid_t, int *, int, struct rusage *); +pid_t _waitpid(pid_t, int *, int); extern char **_environ; diff --git a/include/scc/bits/dragonfly/sys.h b/include/scc/bits/dragonfly/sys.h @@ -23,12 +23,12 @@ typedef int pid_t; struct sigaction; struct rusage; -extern int _execve(const char *, const char *[], char *const []); -extern int _fork(void); -extern pid_t _getpid(void); -extern int _kill(pid_t, int); -extern int _sigaction(int, struct sigaction *, struct sigaction *); -extern pid_t _wait4(pid_t, int *, int, struct rusage *); -extern pid_t _waitpid(pid_t, int *, int); +int _execve(const char *, const char *[], char *const []); +int _fork(void); +pid_t _getpid(void); +int _kill(pid_t, int); +int _sigaction(int, struct sigaction *, struct sigaction *); +pid_t _wait4(pid_t, int *, int, struct rusage *); +pid_t _waitpid(pid_t, int *, int); extern char **_environ; diff --git a/include/scc/bits/freebsd/sys.h b/include/scc/bits/freebsd/sys.h @@ -23,12 +23,12 @@ typedef int pid_t; struct sigaction; struct rusage; -extern int _execve(const char *, const char *[], char *const []); -extern int _fork(void); -extern pid_t _getpid(void); -extern int _kill(pid_t, int); -extern int _sigaction(int, struct sigaction *, struct sigaction *); -extern pid_t _wait4(pid_t, int *, int, struct rusage *); -extern pid_t _waitpid(pid_t, int *, int); +int _execve(const char *, const char *[], char *const []); +int _fork(void); +pid_t _getpid(void); +int _kill(pid_t, int); +int _sigaction(int, struct sigaction *, struct sigaction *); +pid_t _wait4(pid_t, int *, int, struct rusage *); +pid_t _waitpid(pid_t, int *, int); extern char **_environ; diff --git a/include/scc/bits/linux/amd64/arch/sigaction.h b/include/scc/bits/linux/amd64/arch/sigaction.h @@ -7,4 +7,4 @@ struct sigaction { unsigned sa_mask[2]; }; -extern int __sigaction(int, struct sigaction *, struct sigaction *, size_t); +int __sigaction(int, struct sigaction *, struct sigaction *, size_t); diff --git a/include/scc/bits/linux/arm/arch/sigaction.h b/include/scc/bits/linux/arm/arch/sigaction.h @@ -7,4 +7,4 @@ struct sigaction { unsigned sa_mask[2]; }; -extern int __sigaction(int, struct sigaction *, struct sigaction *, size_t); +int __sigaction(int, struct sigaction *, struct sigaction *, size_t); diff --git a/include/scc/bits/linux/arm64/arch/sigaction.h b/include/scc/bits/linux/arm64/arch/sigaction.h @@ -7,4 +7,4 @@ struct sigaction { unsigned sa_mask[2]; }; -extern int __sigaction(int, struct sigaction *, struct sigaction *, size_t); +int __sigaction(int, struct sigaction *, struct sigaction *, size_t); diff --git a/include/scc/bits/linux/i386/arch/sigaction.h b/include/scc/bits/linux/i386/arch/sigaction.h @@ -7,4 +7,4 @@ struct sigaction { unsigned sa_mask[2]; }; -extern int __sigaction(int, struct sigaction *, struct sigaction *, size_t); +int __sigaction(int, struct sigaction *, struct sigaction *, size_t); diff --git a/include/scc/bits/linux/ppc/arch/sigaction.h b/include/scc/bits/linux/ppc/arch/sigaction.h @@ -7,4 +7,4 @@ struct sigaction { unsigned sa_mask[2]; }; -extern int __sigaction(int, struct sigaction *, struct sigaction *, size_t); +int __sigaction(int, struct sigaction *, struct sigaction *, size_t); diff --git a/include/scc/bits/linux/sys.h b/include/scc/bits/linux/sys.h @@ -23,12 +23,12 @@ typedef int pid_t; struct sigaction; struct rusage; -extern int _execve(const char *, const char *[], char *const []); -extern int _fork(void); -extern pid_t _getpid(void); -extern int _kill(pid_t, int); -extern int _sigaction(int, struct sigaction *, struct sigaction *); -extern pid_t _wait4(pid_t, int *, int, struct rusage *); -extern pid_t _waitpid(pid_t, int *, int); +int _execve(const char *, const char *[], char *const []); +int _fork(void); +pid_t _getpid(void); +int _kill(pid_t, int); +int _sigaction(int, struct sigaction *, struct sigaction *); +pid_t _wait4(pid_t, int *, int, struct rusage *); +pid_t _waitpid(pid_t, int *, int); extern char **_environ; diff --git a/include/scc/bits/netbsd/sys.h b/include/scc/bits/netbsd/sys.h @@ -23,12 +23,12 @@ typedef int pid_t; struct sigaction; struct rusage; -extern int _execve(const char *, const char *[], char *const []); -extern int _fork(void); -extern pid_t _getpid(void); -extern int _kill(pid_t, int); -extern int _sigaction(int, struct sigaction *, struct sigaction *); -extern pid_t _wait4(pid_t, int *, int, struct rusage *); -extern pid_t _waitpid(pid_t, int *, int); +int _execve(const char *, const char *[], char *const []); +int _fork(void); +pid_t _getpid(void); +int _kill(pid_t, int); +int _sigaction(int, struct sigaction *, struct sigaction *); +pid_t _wait4(pid_t, int *, int, struct rusage *); +pid_t _waitpid(pid_t, int *, int); extern char **_environ; diff --git a/include/scc/bits/openbsd/sys.h b/include/scc/bits/openbsd/sys.h @@ -23,12 +23,12 @@ typedef int pid_t; struct sigaction; struct rusage; -extern int _execve(const char *, const char *[], char *const []); -extern int _fork(void); -extern pid_t _getpid(void); -extern int _kill(pid_t, int); -extern int _sigaction(int, struct sigaction *, struct sigaction *); -extern pid_t _wait4(pid_t, int *, int, struct rusage *); -extern pid_t _waitpid(pid_t, int *, int); +int _execve(const char *, const char *[], char *const []); +int _fork(void); +pid_t _getpid(void); +int _kill(pid_t, int); +int _sigaction(int, struct sigaction *, struct sigaction *); +pid_t _wait4(pid_t, int *, int, struct rusage *); +pid_t _waitpid(pid_t, int *, int); extern char **_environ; diff --git a/include/scc/bits/scc/coff32.h b/include/scc/bits/scc/coff32.h @@ -46,7 +46,7 @@ struct arch { int flags; }; -extern char *coff32str(Coff32 *, void *); +char *coff32str(Coff32 *, void *); /* globals */ diff --git a/include/scc/bits/scc/elf64.h b/include/scc/bits/scc/elf64.h @@ -40,7 +40,7 @@ struct arch { int type; }; -extern char *elf64str(Obj *, int n, long); +char *elf64str(Obj *, int n, long); /* globals */ extern struct arch elf64archs[]; diff --git a/include/scc/bits/scc/mach.h b/include/scc/bits/scc/mach.h @@ -130,40 +130,40 @@ struct symbol { }; #ifdef stdin -extern int archive(FILE *); -extern long armember(FILE *, char *, struct ar_hdr *); +int archive(FILE *); +long armember(FILE *, char *, struct ar_hdr *); -extern int objprobe(FILE *, char **); -extern int objpos(Obj *, FILE *, long); +int objprobe(FILE *, char **); +int objpos(Obj *, FILE *, long); -extern int readobj(Obj *, FILE *); -extern int writeobj(Obj *, Map *, FILE *); +int readobj(Obj *, FILE *); +int writeobj(Obj *, Map *, FILE *); -extern Map *loadmap(Obj *, FILE *); +Map *loadmap(Obj *, FILE *); -extern int mapsec(Map *, Section *, FILE *, long); -extern int mapseg(Map *, Section *, FILE *, long); +int mapsec(Map *, Section *, FILE *, long); +int mapseg(Map *, Section *, FILE *, long); -extern int setindex(int, long, char **, long *, FILE *); -extern int getindex(int, long *, char ***, long **, FILE *); +int setindex(int, long, char **, long *, FILE *); +int getindex(int, long *, char ***, long **, FILE *); #endif -extern Map *newmap(int, int); -extern Map *remap(Map *, int, int); -extern void delmap(Map *); +Map *newmap(int, int); +Map *remap(Map *, int, int); +void delmap(Map *); -extern int objtype(char *); -extern Obj *newobj(int); -extern void delobj(Obj *); +int objtype(char *); +Obj *newobj(int); +void delobj(Obj *); -extern int strip(Obj *); -extern int pc2line(Obj *, unsigned long long, char *, int *); -extern int rebase(Obj *, int, unsigned long long); +int strip(Obj *); +int pc2line(Obj *, unsigned long long, char *, int *); +int rebase(Obj *, int, unsigned long long); -extern int findsec(Map *, char *); +int findsec(Map *, char *); -extern Symbol *getsym(Obj *, int *, Symbol *); -extern Symbol *setsym(Obj *, int *, Symbol *); -extern Section *getsec(Obj *, int *, Section *); -extern Section *setsec(Obj *, int *, Section *); +Symbol *getsym(Obj *, int *, Symbol *); +Symbol *setsym(Obj *, int *, Symbol *); +Section *getsec(Obj *, int *, Section *); +Section *setsec(Obj *, int *, Section *); diff --git a/include/scc/bits/scc/scc.h b/include/scc/bits/scc/scc.h @@ -27,24 +27,24 @@ struct fprop { typedef struct alloc Alloc; -extern void die(const char *fmt, ...); -extern void dbg(const char *fmt, ...); -extern void newitem(struct items *items, char *item); -extern void *xmalloc(size_t size); -extern void *xcalloc(size_t nmemb, size_t size); -extern char *xstrdup(const char *s); -extern void *xrealloc(void *buff, size_t size); -extern Alloc *alloc(size_t size, size_t nmemb); -extern void dealloc(Alloc *allocp); -extern void *new(Alloc *allocp); -extern void delete(Alloc *allocp, void *p); -extern int casecmp(const char *s1, const char *s2); -extern unsigned genhash(char *name); -extern char *canonical(char *); +void die(const char *fmt, ...); +void dbg(const char *fmt, ...); +void newitem(struct items *items, char *item); +void *xmalloc(size_t size); +void *xcalloc(size_t nmemb, size_t size); +char *xstrdup(const char *s); +void *xrealloc(void *buff, size_t size); +Alloc *alloc(size_t size, size_t nmemb); +void dealloc(Alloc *allocp); +void *new(Alloc *allocp); +void delete(Alloc *allocp, void *p); +int casecmp(const char *s1, const char *s2); +unsigned genhash(char *name); +char *canonical(char *); #ifdef CLOCKS_PER_SEC -extern long long fromepoch(time_t); -extern time_t totime(long long); -extern int getstat(char *, struct fprop *); -extern int setstat(char *, struct fprop *); +long long fromepoch(time_t); +time_t totime(long long); +int getstat(char *, struct fprop *); +int setstat(char *, struct fprop *); #endif diff --git a/include/scc/ctype.h b/include/scc/ctype.h @@ -1,20 +1,20 @@ #ifndef _CTYPE_H #define _CTYPE_H -extern int isalnum(int); -extern int isalpha(int); -extern int islower(int); -extern int isupper(int); -extern int isdigit(int); -extern int isxdigit(int); -extern int iscntrl(int); -extern int isgraph(int); -extern int isspace(int); -extern int isblank(int); -extern int isprint(int); -extern int ispunct(int); -extern int tolower(int); -extern int toupper(int); +int isalnum(int); +int isalpha(int); +int islower(int); +int isupper(int); +int isdigit(int); +int isxdigit(int); +int iscntrl(int); +int isgraph(int); +int isspace(int); +int isblank(int); +int isprint(int); +int ispunct(int); +int tolower(int); +int toupper(int); #define _U 0x01 /* upper */ diff --git a/include/scc/inttypes.h b/include/scc/inttypes.h @@ -8,14 +8,14 @@ typedef struct { intmax_t quot, rem; } imaxdiv_t; -extern intmax_t imaxabs(intmax_t); -extern imaxdiv_t imaxdiv(intmax_t, intmax_t); -extern intmax_t strtoimax(const char * restrict, char ** restrict, int); -extern uintmax_t strtoumax(const char * restrict, char ** restrict, int); +intmax_t imaxabs(intmax_t); +imaxdiv_t imaxdiv(intmax_t, intmax_t); +intmax_t strtoimax(const char * restrict, char ** restrict, int); +uintmax_t strtoumax(const char * restrict, char ** restrict, int); #ifdef _NEED_WCHART -extern intmax_t wcstoimax(const wchar_t * restrict, wchar_t ** restrict, int); -extern uintmax_t wcstoumax(const wchar_t * restrict, wchar_t ** restrict, int); +intmax_t wcstoimax(const wchar_t * restrict, wchar_t ** restrict, int); +uintmax_t wcstoumax(const wchar_t * restrict, wchar_t ** restrict, int); #endif #endif diff --git a/include/scc/locale.h b/include/scc/locale.h @@ -39,7 +39,7 @@ struct lconv { char int_n_sign_posn; }; -extern char *setlocale(int, const char *); -extern struct lconv *localeconv(void); +char *setlocale(int, const char *); +struct lconv *localeconv(void); #endif diff --git a/include/scc/setjmp.h b/include/scc/setjmp.h @@ -5,8 +5,8 @@ #define setjmp(x) setjmp(x) -extern int setjmp(jmp_buf); -extern void longjmp(jmp_buf, int); +int setjmp(jmp_buf); +void longjmp(jmp_buf, int); #define setjmp setjmp diff --git a/include/scc/stdio.h b/include/scc/stdio.h @@ -72,56 +72,56 @@ extern FILE __iob[FOPEN_MAX]; #define stdout (&__iob[1]) #define stderr (&__iob[2]) -extern int remove(const char *); -extern int rename(const char *, const char *); -extern FILE *tmpfile(void); -extern char *tmpnam(char *); -extern int fclose(FILE *); -extern int fflush(FILE *); -extern FILE *fopen(const char *restrict, const char *restrict); -extern FILE *freopen(const char *restrict, const char *restrict, +int remove(const char *); +int rename(const char *, const char *); +FILE *tmpfile(void); +char *tmpnam(char *); +int fclose(FILE *); +int fflush(FILE *); +FILE *fopen(const char *restrict, const char *restrict); +FILE *freopen(const char *restrict, const char *restrict, FILE *restrict); -extern void setbuf(FILE *restrict, char *restrict); -extern int setvbuf(FILE *restrict, char *restrict, int, size_t); -extern int fprintf(FILE *restrict, const char *restrict, ...); -extern int fscanf(FILE *restrict, const char *restrict, ...); -extern int printf(const char *restrict, ...); -extern int scanf(const char *restrict, ...); -extern int snprintf(char *restrict, size_t, const char *restrict, ...); -extern int sprintf(char *restrict, const char *restrict, ...); -extern int sscanf(const char *restrict, const char *restrict, ...); +void setbuf(FILE *restrict, char *restrict); +int setvbuf(FILE *restrict, char *restrict, int, size_t); +int fprintf(FILE *restrict, const char *restrict, ...); +int fscanf(FILE *restrict, const char *restrict, ...); +int printf(const char *restrict, ...); +int scanf(const char *restrict, ...); +int snprintf(char *restrict, size_t, const char *restrict, ...); +int sprintf(char *restrict, const char *restrict, ...); +int sscanf(const char *restrict, const char *restrict, ...); -extern int vfprintf(FILE *restrict, const char *restrict, __va_list); -extern int vfscanf(FILE *restrict, const char *restrict, __va_list); -extern int vprintf(const char *restrict, __va_list); -extern int vscanf(const char *restrict, __va_list); -extern int vsnprintf(char *restrict, size_t, const char *restrict, __va_list); -extern int vsprintf(char *restrict, const char *restrict, __va_list); -extern int vsscanf(const char *restrict, const char *restrict, __va_list); +int vfprintf(FILE *restrict, const char *restrict, __va_list); +int vfscanf(FILE *restrict, const char *restrict, __va_list); +int vprintf(const char *restrict, __va_list); +int vscanf(const char *restrict, __va_list); +int vsnprintf(char *restrict, size_t, const char *restrict, __va_list); +int vsprintf(char *restrict, const char *restrict, __va_list); +int vsscanf(const char *restrict, const char *restrict, __va_list); -extern int fgetc(FILE *); -extern char *fgets(char *restrict, int, FILE *restrict); -extern int fputc(int, FILE *); -extern int fputs(const char *restrict, FILE *restrict); -extern int getc(FILE *); -extern int getchar(void); -extern char *gets(char *); -extern int putc(int, FILE *); -extern int putchar(int); -extern int puts(const char *); -extern int ungetc(int, FILE *); -extern size_t fread(void *restrict, size_t, size_t, FILE *restrict); -extern size_t fwrite(const void *restrict, size_t, size_t, FILE *restrict); -extern int fseek(FILE *, long int, int); -extern long int ftell(FILE *); -extern void rewind(FILE *); -extern void clearerr(FILE *); -extern int feof(FILE *); -extern int ferror(FILE *); -extern void perror(const char *); +int fgetc(FILE *); +char *fgets(char *restrict, int, FILE *restrict); +int fputc(int, FILE *); +int fputs(const char *restrict, FILE *restrict); +int getc(FILE *); +int getchar(void); +char *gets(char *); +int putc(int, FILE *); +int putchar(int); +int puts(const char *); +int ungetc(int, FILE *); +size_t fread(void *restrict, size_t, size_t, FILE *restrict); +size_t fwrite(const void *restrict, size_t, size_t, FILE *restrict); +int fseek(FILE *, long int, int); +long int ftell(FILE *); +void rewind(FILE *); +void clearerr(FILE *); +int feof(FILE *); +int ferror(FILE *); +void perror(const char *); -extern int __getc(FILE *); -extern int __putc(int, FILE *); +int __getc(FILE *); +int __putc(int, FILE *); #define getc(fp) ((fp)->rp >= (fp)->wp ? __getc(fp) : *(fp)->rp++) #define putc(c, fp) ((fp)->wp >= (fp)->rp ? __putc(c,fp) : (*(fp)->wp++ = c)) diff --git a/include/scc/stdlib.h b/include/scc/stdlib.h @@ -26,44 +26,44 @@ typedef struct { long long quot, rem; } lldiv_t; -extern double atof(const char *); -extern int atoi(const char *); -extern long int atol(const char *); -extern long long int atoll(const char *); -extern double strtod(const char *restrict, char **restrict); -extern float strtof(const char *restrict, char **restrict); -extern long double strtold(const char *restrict, char **restrict); -extern long int strtol(const char *restrict, char **restrict, int); -extern long long int strtoll(const char *restrict, char **restrict, int); -extern unsigned long int strtoul(const char *restrict, char **restrict, int); -extern unsigned long long int strtoull(const char *restrict, char **restrict, +double atof(const char *); +int atoi(const char *); +long int atol(const char *); +long long int atoll(const char *); +double strtod(const char *restrict, char **restrict); +float strtof(const char *restrict, char **restrict); +long double strtold(const char *restrict, char **restrict); +long int strtol(const char *restrict, char **restrict, int); +long long int strtoll(const char *restrict, char **restrict, int); +unsigned long int strtoul(const char *restrict, char **restrict, int); +unsigned long long int strtoull(const char *restrict, char **restrict, int); -extern int rand(void); -extern void srand(unsigned int); -extern void *calloc(size_t, size_t); -extern void free(void *); -extern void *malloc(size_t); -extern void *realloc(void *, size_t); -extern void abort(void); -extern int atexit(void (*)(void)); -extern void exit(int); -extern void _Exit(int); -extern char *getenv(const char *); -extern int system(const char *); -extern void *bsearch(const void *, const void *, size_t, size_t, +int rand(void); +void srand(unsigned int); +void *calloc(size_t, size_t); +void free(void *); +void *malloc(size_t); +void *realloc(void *, size_t); +void abort(void); +int atexit(void (*)(void)); +void exit(int); +void _Exit(int); +char *getenv(const char *); +int system(const char *); +void *bsearch(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); -extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); -extern int abs(int); -extern long int labs(long int); -extern long long int llabs(long long int); -extern div_t div(int, int); -extern ldiv_t ldiv(long int, long int); -extern lldiv_t lldiv(long long int, long long int); +void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); +int abs(int); +long int labs(long int); +long long int llabs(long long int); +div_t div(int, int); +ldiv_t ldiv(long int, long int); +lldiv_t lldiv(long long int, long long int); -extern int mblen(const char *, size_t); -extern int mbtowc(wchar_t *restrict, const char *restrict, size_t); -extern int wctomb(char *, wchar_t); -extern size_t mbstowcs(wchar_t *restrict, const char *restrict, size_t); -extern size_t wcstombs(char *restrict, const wchar_t *restrict, size_t); +int mblen(const char *, size_t); +int mbtowc(wchar_t *restrict, const char *restrict, size_t); +int wctomb(char *, wchar_t); +size_t mbstowcs(wchar_t *restrict, const char *restrict, size_t); +size_t wcstombs(char *restrict, const wchar_t *restrict, size_t); #endif diff --git a/include/scc/string.h b/include/scc/string.h @@ -7,27 +7,27 @@ #include <arch/cdefs.h> #include <arch/string.h> -extern void *memcpy(void *restrict, const void *restrict, size_t); -extern void *memmove(void *, const void *, size_t); -extern char *strcpy(char *restrict, const char *restrict); -extern char *strncpy(char *restrict, const char *restrict, size_t); -extern char *strcat(char *restrict, const char *restrict); -extern char *strncat(char *restrict, const char *restrict, size_t); -extern int memcmp(const void *, const void *, size_t); -extern int strcmp(const char *, const char *); -extern int strcoll(const char *, const char *); -extern int strncmp(const char *, const char *, size_t); -extern size_t strxfrm(char *restrict, const char *restrict, size_t); -extern void *memchr(const void *, int, size_t); -extern char *strchr(const char *, int); -extern size_t strcspn(const char *, const char *); -extern char *strpbrk(const char *, const char *); -extern char *strrchr(const char *, int); -extern size_t strspn(const char *, const char *); -extern char *strstr(const char *, const char *); -extern char *strtok(char *restrict, const char *restrict); -extern void *memset(void *, int, size_t); -extern char *strerror(int); -extern size_t strlen(const char *); +void *memcpy(void *restrict, const void *restrict, size_t); +void *memmove(void *, const void *, size_t); +char *strcpy(char *restrict, const char *restrict); +char *strncpy(char *restrict, const char *restrict, size_t); +char *strcat(char *restrict, const char *restrict); +char *strncat(char *restrict, const char *restrict, size_t); +int memcmp(const void *, const void *, size_t); +int strcmp(const char *, const char *); +int strcoll(const char *, const char *); +int strncmp(const char *, const char *, size_t); +size_t strxfrm(char *restrict, const char *restrict, size_t); +void *memchr(const void *, int, size_t); +char *strchr(const char *, int); +size_t strcspn(const char *, const char *); +char *strpbrk(const char *, const char *); +char *strrchr(const char *, int); +size_t strspn(const char *, const char *); +char *strstr(const char *, const char *); +char *strtok(char *restrict, const char *restrict); +void *memset(void *, int, size_t); +char *strerror(int); +size_t strlen(const char *); #endif diff --git a/include/scc/time.h b/include/scc/time.h @@ -24,15 +24,15 @@ struct tm { long tm_gmtoff; }; -extern clock_t clock(void); -extern double difftime(time_t, time_t); -extern time_t mktime(struct tm *); -extern time_t time(time_t *); -extern char *asctime(const struct tm *); -extern char *ctime(const time_t *); -extern struct tm *gmtime(const time_t *); -extern struct tm *localtime(const time_t *); -extern size_t strftime(char *restrict, size_t, const char *restrict, +clock_t clock(void); +double difftime(time_t, time_t); +time_t mktime(struct tm *); +time_t time(time_t *); +char *asctime(const struct tm *); +char *ctime(const time_t *); +struct tm *gmtime(const time_t *); +struct tm *localtime(const time_t *); +size_t strftime(char *restrict, size_t, const char *restrict, const struct tm *restrict); #endif diff --git a/include/scc/wchar.h b/include/scc/wchar.h @@ -20,78 +20,78 @@ typedef struct { struct tm; struct _FILE; -extern int vswscanf(const wchar_t *restrict, const wchar_t *restrict, __va_list); -extern int vwprintf(const wchar_t *restrict, __va_list); -extern int vwscanf(const wchar_t *restrict format, __va_list); - -extern int fwprintf(struct _FILE *restrict, const wchar_t *restrict, ...); -extern int fwscanf(struct _FILE *restrict, const wchar_t *restrict, ...); - -extern int vfwprintf(struct _FILE *restrict, const wchar_t *restrict, __va_list); -extern int vfwscanf(struct _FILE *restrict, const wchar_t *restrict, __va_list); -extern int vswprintf(wchar_t *restrict, size_t, const wchar_t *restrict, __va_list); - -extern wint_t fgetwc(struct _FILE *); -extern wint_t fputwc(wchar_t c, struct _FILE *); -extern wint_t getwc(struct _FILE *); -extern wint_t putwc(wchar_t, struct _FILE *); -extern wint_t getwchar(void); -extern wint_t putwchar(wchar_t); -extern wint_t ungetwc(wint_t, struct _FILE *); - -extern int fwide(struct _FILE *, int); -extern wchar_t *fgetws(wchar_t *restrict, int, struct _FILE *restrict); -extern int fputws(const wchar_t *restrict, struct _FILE *restrict); - -extern int swprintf(wchar_t *restrict, size_t, const wchar_t *restrict, ...); -extern int swscanf(const wchar_t *restrict, const wchar_t *restrict, ...); -extern int wprintf(const wchar_t *restrict, ...); -extern int wscanf(const wchar_t *restrict, ...); - -extern double wcstod(const wchar_t *restrict, wchar_t **restrict); -extern float wcstof(const wchar_t *restrict, wchar_t **restrict); -extern long double wcstold(const wchar_t *restrict, wchar_t **restrict); - -extern long int wcstol(const wchar_t *restrict, wchar_t **restrict, int); -extern long long int wcstoll(const wchar_t *restrict, wchar_t **restrict, int); -extern unsigned long int wcstoul(const wchar_t *restrict, wchar_t **restrict, int); -extern unsigned long long int wcstoull(const wchar_t *restrict, wchar_t **restrict, int); - -extern wchar_t *wcscpy(wchar_t *restrict, const wchar_t *restrict); -extern wchar_t *wcsncpy(wchar_t *restrict, const wchar_t *restrict, size_t); - -extern wchar_t *wmemcpy(wchar_t *restrict, const wchar_t *restrict, size_t); -extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); -extern wchar_t *wmemset(wchar_t *, wchar_t, size_t); -extern wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); -extern int wmemcmp(const wchar_t *, const wchar_t *, size_t); - -extern size_t wcslen(const wchar_t *); -extern int wcscmp(const wchar_t *, const wchar_t *); -extern wchar_t *wcscat(wchar_t *restrict, const wchar_t *restrict); -extern wchar_t *wcsncat(wchar_t *restrict, const wchar_t *restrict, size_t); -extern int wcscoll(const wchar_t *, const wchar_t *); -extern int wcsncmp(const wchar_t *, const wchar_t *, size_t); -extern size_t wcsxfrm(wchar_t *restrict, const wchar_t *restrict, size_t); -extern wchar_t *wcschr(const wchar_t *, wchar_t); -extern size_t wcscspn(const wchar_t *, const wchar_t *); -extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *); -extern wchar_t *wcsrchr(const wchar_t *, wchar_t); -extern size_t wcsspn(const wchar_t *, const wchar_t *); -extern wchar_t *wcsstr(const wchar_t *, const wchar_t *); -extern wchar_t *wcstok(wchar_t *restrict, const wchar_t *restrict, wchar_t **restrict); - -extern size_t wcsftime(wchar_t *restrict, size_t, const wchar_t *restrict, const struct tm *restrict); -extern wint_t btowc(int); -extern int wctob(wint_t); - -extern int mbsinit(const mbstate_t *); -extern size_t mbrlen(const char *restrict, size_t, mbstate_t *restrict); -extern size_t mbrtowc(wchar_t *restrict, const char *restrict, size_t, mbstate_t *restrict); -extern size_t wcrtomb(char *restrict, wchar_t, mbstate_t *restrict); -extern size_t mbsrtowcs(wchar_t *restrict, const char **restrict, size_t, mbstate_t *restrict); -extern size_t wcsrtombs(char *restrict, const wchar_t **restrict, size_t, mbstate_t *restrict); -extern int wcwidth(wchar_t); +int vswscanf(const wchar_t *restrict, const wchar_t *restrict, __va_list); +int vwprintf(const wchar_t *restrict, __va_list); +int vwscanf(const wchar_t *restrict format, __va_list); + +int fwprintf(struct _FILE *restrict, const wchar_t *restrict, ...); +int fwscanf(struct _FILE *restrict, const wchar_t *restrict, ...); + +int vfwprintf(struct _FILE *restrict, const wchar_t *restrict, __va_list); +int vfwscanf(struct _FILE *restrict, const wchar_t *restrict, __va_list); +int vswprintf(wchar_t *restrict, size_t, const wchar_t *restrict, __va_list); + +wint_t fgetwc(struct _FILE *); +wint_t fputwc(wchar_t c, struct _FILE *); +wint_t getwc(struct _FILE *); +wint_t putwc(wchar_t, struct _FILE *); +wint_t getwchar(void); +wint_t putwchar(wchar_t); +wint_t ungetwc(wint_t, struct _FILE *); + +int fwide(struct _FILE *, int); +wchar_t *fgetws(wchar_t *restrict, int, struct _FILE *restrict); +int fputws(const wchar_t *restrict, struct _FILE *restrict); + +int swprintf(wchar_t *restrict, size_t, const wchar_t *restrict, ...); +int swscanf(const wchar_t *restrict, const wchar_t *restrict, ...); +int wprintf(const wchar_t *restrict, ...); +int wscanf(const wchar_t *restrict, ...); + +double wcstod(const wchar_t *restrict, wchar_t **restrict); +float wcstof(const wchar_t *restrict, wchar_t **restrict); +long double wcstold(const wchar_t *restrict, wchar_t **restrict); + +long int wcstol(const wchar_t *restrict, wchar_t **restrict, int); +long long int wcstoll(const wchar_t *restrict, wchar_t **restrict, int); +unsigned long int wcstoul(const wchar_t *restrict, wchar_t **restrict, int); +unsigned long long int wcstoull(const wchar_t *restrict, wchar_t **restrict, int); + +wchar_t *wcscpy(wchar_t *restrict, const wchar_t *restrict); +wchar_t *wcsncpy(wchar_t *restrict, const wchar_t *restrict, size_t); + +wchar_t *wmemcpy(wchar_t *restrict, const wchar_t *restrict, size_t); +wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); +wchar_t *wmemset(wchar_t *, wchar_t, size_t); +wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); +int wmemcmp(const wchar_t *, const wchar_t *, size_t); + +size_t wcslen(const wchar_t *); +int wcscmp(const wchar_t *, const wchar_t *); +wchar_t *wcscat(wchar_t *restrict, const wchar_t *restrict); +wchar_t *wcsncat(wchar_t *restrict, const wchar_t *restrict, size_t); +int wcscoll(const wchar_t *, const wchar_t *); +int wcsncmp(const wchar_t *, const wchar_t *, size_t); +size_t wcsxfrm(wchar_t *restrict, const wchar_t *restrict, size_t); +wchar_t *wcschr(const wchar_t *, wchar_t); +size_t wcscspn(const wchar_t *, const wchar_t *); +wchar_t *wcspbrk(const wchar_t *, const wchar_t *); +wchar_t *wcsrchr(const wchar_t *, wchar_t); +size_t wcsspn(const wchar_t *, const wchar_t *); +wchar_t *wcsstr(const wchar_t *, const wchar_t *); +wchar_t *wcstok(wchar_t *restrict, const wchar_t *restrict, wchar_t **restrict); + +size_t wcsftime(wchar_t *restrict, size_t, const wchar_t *restrict, const struct tm *restrict); +wint_t btowc(int); +int wctob(wint_t); + +int mbsinit(const mbstate_t *); +size_t mbrlen(const char *restrict, size_t, mbstate_t *restrict); +size_t mbrtowc(wchar_t *restrict, const char *restrict, size_t, mbstate_t *restrict); +size_t wcrtomb(char *restrict, wchar_t, mbstate_t *restrict); +size_t mbsrtowcs(wchar_t *restrict, const char **restrict, size_t, mbstate_t *restrict); +size_t wcsrtombs(char *restrict, const wchar_t **restrict, size_t, mbstate_t *restrict); +int wcwidth(wchar_t); #define putwc(wc, fp) fputwc(wc, fp) #define getwc(fp) fgetwc(fp) diff --git a/include/scc/wctype.h b/include/scc/wctype.h @@ -9,23 +9,23 @@ typedef const int *wctrans_t; typedef unsigned long wctype_t; -extern int iswalnum(wint_t); -extern int iswalpha(wint_t); -extern int iswblank(wint_t); -extern int iswcntrl(wint_t); -extern int iswdigit(wint_t); -extern int iswgraph(wint_t); -extern int iswlower(wint_t); -extern int iswprint(wint_t); -extern int iswpunct(wint_t); -extern int iswspace(wint_t); -extern int iswupper(wint_t); -extern int iswxdigit(wint_t); -extern int iswctype(wint_t, wctype_t); -extern wctype_t wctype(const char *); -extern wint_t towlower(wint_t); -extern wint_t towupper(wint_t); -extern wint_t towctrans(wint_t, wctrans_t); -extern wctrans_t wctrans(const char *); +int iswalnum(wint_t); +int iswalpha(wint_t); +int iswblank(wint_t); +int iswcntrl(wint_t); +int iswdigit(wint_t); +int iswgraph(wint_t); +int iswlower(wint_t); +int iswprint(wint_t); +int iswpunct(wint_t); +int iswspace(wint_t); +int iswupper(wint_t); +int iswxdigit(wint_t); +int iswctype(wint_t, wctype_t); +wctype_t wctype(const char *); +wint_t towlower(wint_t); +wint_t towupper(wint_t); +wint_t towctrans(wint_t, wctrans_t); +wctrans_t wctrans(const char *); #endif diff --git a/src/cmd/scc-as/as.h b/src/cmd/scc-as/as.h @@ -98,51 +98,51 @@ union yylval { }; /* symbol.c */ -extern void cleansecs(void); -extern void ibinfmt(void); -extern void emit(char *, int); -extern Section *defsec(char *, char *); -extern Symbol *tmpsym(unsigned long long); -extern void killtmp(void); -extern int toobig(Node *, int); -extern void dumpstab(char *); -extern Symbol *lookup(char *); -extern Symbol *deflabel(char *); -extern unsigned long long getpc(void); +void cleansecs(void); +void ibinfmt(void); +void emit(char *, int); +Section *defsec(char *, char *); +Symbol *tmpsym(unsigned long long); +void killtmp(void); +int toobig(Node *, int); +void dumpstab(char *); +Symbol *lookup(char *); +Symbol *deflabel(char *); +unsigned long long getpc(void); /* parser.c */ -extern Node **getargs(char *); -extern void error(char *, ...); +Node **getargs(char *); +void error(char *, ...); /* Avoid errors in files where stdio is not included */ #ifdef stdin -extern int nextline(struct line *); +int nextline(struct line *); #endif -extern void unexpected(void); -extern void expect(int); +void unexpected(void); +void expect(int); int next(void); #define accept(t) (yytoken == (t) ? next() : 0) -extern void regctx(int mode); -extern Node *getreg(void); -extern Node *operand(char **); -extern void addinput(char *); -extern int delinput(void); -extern int ahead(void); +void regctx(int mode); +Node *getreg(void); +Node *operand(char **); +void addinput(char *); +int delinput(void); +int ahead(void); /* expr.c */ -extern Node *expr(void); -extern void deltree(Node *); -extern Node *node(int, Node *, Node *); +Node *expr(void); +void deltree(Node *); +Node *node(int, Node *, Node *); /* proc.c */ -extern void iarch(void); -extern int match(Op *, Node **); -extern Node *moperand(void); +void iarch(void); +int match(Op *, Node **); +Node *moperand(void); /* ins.c */ -extern char *tobytes(unsigned long long, int, int); +char *tobytes(unsigned long long, int, int); /* binfmt.c */ -extern void writeout(char *); +void writeout(char *); /* * Definition of global variables diff --git a/src/cmd/scc-cc/cc1/cc1.h b/src/cmd/scc-cc/cc1/cc1.h @@ -429,110 +429,110 @@ struct input { #endif /* error.c */ -extern void error(char *fmt, ...); -extern void warn(char *fmt, ...); -extern void unexpected(void); -extern void errorp(char *fmt, ...); -extern void cpperror(char *fmt, ...); -extern Type *deftype(Type *tp); +void error(char *fmt, ...); +void warn(char *fmt, ...); +void unexpected(void); +void errorp(char *fmt, ...); +void cpperror(char *fmt, ...); +Type *deftype(Type *tp); /* types.c */ -extern int eqtype(Type *tp1, Type *tp2, int eqflag); -extern Type *ctype(int type, int sign, int size); -extern Type *mktype(Type *tp, int op, long long nelem, Type *data[]); -extern Type *duptype(Type *base); -extern struct limits *getlimits(Type *tp); -extern void typesize(Type *tp); -extern void flushtypes(void); +int eqtype(Type *tp1, Type *tp2, int eqflag); +Type *ctype(int type, int sign, int size); +Type *mktype(Type *tp, int op, long long nelem, Type *data[]); +Type *duptype(Type *base); +struct limits *getlimits(Type *tp); +void typesize(Type *tp); +void flushtypes(void); /* symbol.c */ -extern void dumpstab(Symbol **tbl, char *msg); -extern Symbol *lookup(int ns, char *name, int alloc); -extern Symbol *nextsym(Symbol *sym, int ns); -extern Symbol *install(int ns, Symbol *sym); -extern Symbol *newsym(int ns, char *name); -extern void pushctx(void), popctx(void); -extern void killsym(Symbol *sym); -extern Symbol *newlabel(void); -extern void builtins(struct builtin *builts); -extern Symbol *newstring(char *s, size_t len); -extern unsigned newid(void); -extern void isyms(void); +void dumpstab(Symbol **tbl, char *msg); +Symbol *lookup(int ns, char *name, int alloc); +Symbol *nextsym(Symbol *sym, int ns); +Symbol *install(int ns, Symbol *sym); +Symbol *newsym(int ns, char *name); +void pushctx(void), popctx(void); +void killsym(Symbol *sym); +Symbol *newlabel(void); +void builtins(struct builtin *builts); +Symbol *newstring(char *s, size_t len); +unsigned newid(void); +void isyms(void); /* stmt.c */ -extern void compound(Symbol *lbreak, Symbol *lcont, Switch *sw); +void compound(Symbol *lbreak, Symbol *lcont, Switch *sw); /* decl.c */ -extern Type *typename(void); -extern void decl(void); +Type *typename(void); +void decl(void); /* lex.c */ -extern int ahead(void); -extern int next(void); -extern void expect(int tok); -extern void discard(void); -extern int addinput(int, void *, int); -extern void delinput(void); -extern void setsafe(int type); -extern void setloc(char *fname, unsigned line); +int ahead(void); +int next(void); +void expect(int tok); +void discard(void); +int addinput(int, void *, int); +void delinput(void); +void setsafe(int type); +void setloc(char *fname, unsigned line); #define accept(t) ((yytoken == (t)) ? next() : 0) /* code.c */ -extern Node *prtree(char *s, Node *np); -extern void emit(int, void *); -extern Node *node(int op, Type *tp, Node *left, Node *rigth); -extern Node *varnode(Symbol *sym); -extern Node *constnode(Symbol *sym); -extern Node *sizeofnode(Type *tp); -extern Node *offsetnode(Symbol *, Type *); -extern void freetree(Node *np); -extern void icode(void); +Node *prtree(char *s, Node *np); +void emit(int, void *); +Node *node(int op, Type *tp, Node *left, Node *rigth); +Node *varnode(Symbol *sym); +Node *constnode(Symbol *sym); +Node *sizeofnode(Type *tp); +Node *offsetnode(Symbol *, Type *); +void freetree(Node *np); +void icode(void); #define BTYPE(np) ((np)->type->op) /* fold.c */ -extern Node *simplify(Node *np); -extern unsigned long long ones(int nbytes); +Node *simplify(Node *np); +unsigned long long ones(int nbytes); /* expr.c */ -extern Node *decay(Node *), *negate(Node *np), *assign(void); -extern Node *convert(Node *np, Type *tp1, int iscast); -extern Node *constexpr(void), *condexpr(int neg), *expr(void); -extern int isnodecmp(int op); -extern int negop(int op); -extern int cmpnode(Node *np, unsigned long long val); -extern int power2node(Node *, int *); +Node *decay(Node *), *negate(Node *np), *assign(void); +Node *convert(Node *np, Type *tp1, int iscast); +Node *constexpr(void), *condexpr(int neg), *expr(void); +int isnodecmp(int op); +int negop(int op); +int cmpnode(Node *np, unsigned long long val); +int power2node(Node *, int *); /* init.c */ -extern void initializer(Symbol *sym, Type *tp); -extern Node *initlist(Type *tp); +void initializer(Symbol *sym, Type *tp); +Node *initlist(Type *tp); /* cpp.c */ -extern void icpp(void); -extern int cpp(void); -extern int expand(Symbol *); -extern void incdir(char *dir); -extern void outcpp(void); -extern void defdefine(char *macro, char *val, char *source); -extern void undefmacro(char *s); -extern void ppragmaln(void); -extern void delmacro(Macro *); -extern Macro *newmacro(Symbol *); -extern Node *defined(void); +void icpp(void); +int cpp(void); +int expand(Symbol *); +void incdir(char *dir); +void outcpp(void); +void defdefine(char *macro, char *val, char *source); +void undefmacro(char *s); +void ppragmaln(void); +void delmacro(Macro *); +Macro *newmacro(Symbol *); +Node *defined(void); /* builtin.c */ -extern void ibuilts(void); +void ibuilts(void); /* arch.c */ -extern void iarch(void); -extern int valid_va_list(Type *tp); +void iarch(void); +int valid_va_list(Type *tp); /* architectures */ -extern Arch *amd64_sysv(void); -extern Arch *z80_scc(void); -extern Arch *arm64_sysv(void); -extern Arch *riscv64_sysv(void); -extern Arch *i386_sysv(void); +Arch *amd64_sysv(void); +Arch *z80_scc(void); +Arch *arm64_sysv(void); +Arch *riscv64_sysv(void); +Arch *i386_sysv(void); /* * Definition of global variables diff --git a/src/cmd/scc-cc/cc2/cc2.h b/src/cmd/scc-cc/cc2/cc2.h @@ -255,67 +255,67 @@ struct inst { }; /* main.c */ -extern void error(unsigned nerror, ...); +void error(unsigned nerror, ...); /* parse.c */ -extern void parse(void); +void parse(void); /* cgen.c */ -extern void genaddr(void); -extern void genasm(void); -extern Node *tsethi(Node *); +void genaddr(void); +void genasm(void); +Node *tsethi(Node *); /* peep.c */ -extern void peephole(void); +void peephole(void); /* code.c */ -extern void data(Node *np); -extern void writeout(void), endinit(void); -extern void code(int op, Node *to, Node *from1, Node *from2); -extern void defvar(Symbol *), defpar(Symbol *), defglobal(Symbol *); -extern void setlabel(Symbol *); -extern Node *label2node(Node *np, Symbol *sym); -extern Node *constnode(Node *np, unsigned long long n, Type *tp); -extern Node *tmpnode(Type *, Symbol *); -extern Node *idxnode(Node *, long); -extern void delcode(void); -extern Symbol *newlabel(void); -extern void pprint(char *s); -extern void deftype(Type *); -extern Node *labelstmt(Node *, Symbol *); +void data(Node *np); +void writeout(void), endinit(void); +void code(int op, Node *to, Node *from1, Node *from2); +void defvar(Symbol *), defpar(Symbol *), defglobal(Symbol *); +void setlabel(Symbol *); +Node *label2node(Node *np, Symbol *sym); +Node *constnode(Node *np, unsigned long long n, Type *tp); +Node *tmpnode(Type *, Symbol *); +Node *idxnode(Node *, long); +void delcode(void); +Symbol *newlabel(void); +void pprint(char *s); +void deftype(Type *); +Node *labelstmt(Node *, Symbol *); /* node.c */ -extern void newfun(Symbol *, Node *); -extern void apply(Node *(*fun)(Node *)); -extern void cleannodes(void); -extern void delnode(Node *np); -extern void deltree(Node *np); -extern void prtree(Node *np), prforest(char *msg); -extern Node *node(int op); -extern Node *addstmt(Node *); -extern Node *delstmt(Node *); -extern Node *insstmt(Node *, Node *); -extern Node *prestmt(Node *); -extern void delrange(Node *, Node *); -extern Node *unlinkstmt(Node *); +void newfun(Symbol *, Node *); +void apply(Node *(*fun)(Node *)); +void cleannodes(void); +void delnode(Node *np); +void deltree(Node *np); +void prtree(Node *np), prforest(char *msg); +Node *node(int op); +Node *addstmt(Node *); +Node *delstmt(Node *); +Node *insstmt(Node *, Node *); +Node *prestmt(Node *); +void delrange(Node *, Node *); +Node *unlinkstmt(Node *); /* symbol.c */ #define TMPSYM 0 -extern Symbol *getsym(unsigned id); -extern void popctx(void); -extern void pushctx(void); -extern void freesym(Symbol *sym); +Symbol *getsym(unsigned id); +void popctx(void); +void pushctx(void); +void freesym(Symbol *sym); /* cfg.c */ -extern void gencfg(void); -extern void cleancfg(void); -extern Node *sethi(Node *); +void gencfg(void); +void cleancfg(void); +Node *sethi(Node *); /* swtch.c */ -extern void cleanswtch(void); -extern Swtch *newswtch(Swtch *); -extern Node *swtch(Node *); -extern Node *swtchdefault(Swtch *); +void cleanswtch(void); +Swtch *newswtch(Swtch *); +Node *swtch(Node *); +Node *swtchdefault(Swtch *); /* globals */ extern Symbol *curfun; diff --git a/src/cmd/scc-ld/ld.h b/src/cmd/scc-ld/ld.h @@ -1,28 +1,28 @@ /* passes */ -extern void pass1(int argc, char *argv[]); -extern void pass2(int argc, char *argv[]); -extern void pass3(int argc, char *argv[]); -extern void pass4(int argc, char *argv[]); -extern void pass5(int argc, char *argv[]); +void pass1(int argc, char *argv[]); +void pass2(int argc, char *argv[]); +void pass3(int argc, char *argv[]); +void pass4(int argc, char *argv[]); +void pass5(int argc, char *argv[]); /* main.c */ -extern void error(char *fmt, ...); -extern char *nextarg(char **argp, char ***argv); +void error(char *fmt, ...); +char *nextarg(char **argp, char ***argv); /* symbol.c */ -extern int hasref(char *name); -extern Symbol *lookupsym(char *name); -extern int moreundef(void); -extern void listundef(void); -extern Symbol *define(Symbol *osym, Obj *obj); -extern void debugsym(void); +int hasref(char *name); +Symbol *lookupsym(char *name); +int moreundef(void); +void listundef(void); +Symbol *define(Symbol *osym, Obj *obj); +void debugsym(void); /* section.c */ -extern Section *lookupsec(char *name); -extern void copy(Obj *obj, Section *osec, Section *sec); -extern void grow(Section *sec, int nbytes); -extern void merge(Section *seg); -extern void debugsec(void); +Section *lookupsec(char *name); +void copy(Obj *obj, Section *osec, Section *sec); +void grow(Section *sec, int nbytes); +void merge(Section *seg); +void debugsec(void); /* globals */ extern char *libpaths[]; diff --git a/src/cmd/scc-make/make.h b/src/cmd/scc-make/make.h @@ -43,36 +43,36 @@ struct target { struct target *next; }; -extern void *emalloc(size_t); -extern void *erealloc(void *, size_t); -extern char *estrdup(char *); - -extern void dumprules(void); -extern void dumpmacros(void); - -extern char *expandstring(char *, Target *, struct loc *); -extern void addtarget(char *, int); -extern void inject(char *); -extern int build(char *); -extern int hash(char *); -extern int parse(char *); -extern void debug(char *, ...); -extern void error(char *, ...); -extern void warning(char *, ...); -extern void adddep(char *, char *); -extern void addrule(char *, struct action *, int); -extern void freeloc(struct loc *); - -extern char *getmacro(char *); -extern void setmacro(char *, char *, int, int); +void *emalloc(size_t); +void *erealloc(void *, size_t); +char *estrdup(char *); + +void dumprules(void); +void dumpmacros(void); + +char *expandstring(char *, Target *, struct loc *); +void addtarget(char *, int); +void inject(char *); +int build(char *); +int hash(char *); +int parse(char *); +void debug(char *, ...); +void error(char *, ...); +void warning(char *, ...); +void adddep(char *, char *); +void addrule(char *, struct action *, int); +void freeloc(struct loc *); + +char *getmacro(char *); +void setmacro(char *, char *, int, int); /* system depdendant */ -extern void killchild(void); -extern time_t stamp(char *); -extern int launch(char *, int); -extern int putenv(char *); -extern void exportvar(char *, char *); -extern int is_dir(char *); +void killchild(void); +time_t stamp(char *); +int launch(char *, int); +int putenv(char *); +void exportvar(char *, char *); +int is_dir(char *); /* main.c */ extern int kflag, dflag, nflag, iflag, sflag; diff --git a/src/cmd/scc-objdump/objdump.h b/src/cmd/scc-objdump/objdump.h @@ -30,22 +30,22 @@ struct flags { }; /* coff32.c */ -extern void coff32syms(Obj *); -extern void coff32scns(Obj *); -extern void coff32fhdr(Obj *, unsigned long long *, Flags *); -extern int coff32hasrelloc(Obj *, Section *); +void coff32syms(Obj *); +void coff32scns(Obj *); +void coff32fhdr(Obj *, unsigned long long *, Flags *); +int coff32hasrelloc(Obj *, Section *); /* elf64.c */ -extern void elfsyms(Obj *); -extern void elfscns(Obj *); -extern void elffhdr(Obj *, unsigned long long *, Flags *); -extern int elfhasrelloc(Obj *, Section *); +void elfsyms(Obj *); +void elfscns(Obj *); +void elffhdr(Obj *, unsigned long long *, Flags *); +int elfhasrelloc(Obj *, Section *); /* main.c */ -extern void error(char *, ...); -extern void setflag(Flags *, int, int); -extern void printflags(Flags *); -extern int selected(char *); +void error(char *, ...); +void setflag(Flags *, int, int); +void printflags(Flags *); +int selected(char *); /* globals */ extern int pflag; diff --git a/src/libc/arch/linux/brk.h b/src/libc/arch/linux/brk.h @@ -1,2 +1,2 @@ -extern void *_sys_brk(void *); +void *_sys_brk(void *); diff --git a/src/libc/libc.h b/src/libc/libc.h @@ -28,14 +28,14 @@ struct tzone { int isdst; }; -extern void *_getheap(void); -extern int _dtoi(char c); +void *_getheap(void); +int _dtoi(char c); #ifdef stdin -extern int _allocbuf(FILE *); -extern int _flsbuf(FILE *); -extern FILE *_fpopen(const char * restrict, const char *restrict, +int _allocbuf(FILE *); +int _flsbuf(FILE *); +FILE *_fpopen(const char * restrict, const char *restrict, FILE *restrict); #endif @@ -43,24 +43,23 @@ extern FILE *_fpopen(const char * restrict, const char *restrict, extern time_t _tzstdoff, _tzdstoff; extern time_t _tzstart, _tzend; -extern time_t _systime(struct tm *); +time_t _systime(struct tm *); #endif -extern void _tzset(void); -extern int _daysyear(int); -extern int _newyear(int); +void _tzset(void); +int _daysyear(int); +int _newyear(int); extern int _tzjulian; extern int _daysmon[12]; extern char *_tzname[2]; extern struct tzone tzones[]; -extern void (*_exitf[])(void); extern unsigned _exitn; extern void (*_flushall)(void); extern void (*_atexithdl)(void); #ifdef _WCHAR_H -extern int _validutf8(wchar_t, int *); -extern wint_t _fputwc(wchar_t, struct _FILE *, int *); +int _validutf8(wchar_t, int *); +wint_t _fputwc(wchar_t, struct _FILE *, int *); #endif diff --git a/src/libc/stdlib/malloc.h b/src/libc/stdlib/malloc.h @@ -11,6 +11,6 @@ union header { _ALIGNTYPE most; }; -extern void *_prevchunk(Header *); +void *_prevchunk(Header *); extern Header *_freep; diff --git a/src/libc/syscall.h b/src/libc/syscall.h @@ -1,10 +1,10 @@ -extern int _brk(void *); -extern void _exit(int); -extern int _close(int); -extern int _open(const char *, int, int); -extern int _read(int, void *, size_t); -extern int _unlink(const char *); -extern int _write(int, void *, size_t); -extern int _access(const char *, int); -extern long _lseek(int, long, int); -extern int _rename(const char *, const char *); +int _brk(void *); +void _exit(int); +int _close(int); +int _open(const char *, int, int); +int _read(int, void *, size_t); +int _unlink(const char *); +int _write(int, void *, size_t); +int _access(const char *, int); +long _lseek(int, long, int); +int _rename(const char *, const char *); diff --git a/src/libmach/coff32/fun.h b/src/libmach/coff32/fun.h @@ -1,19 +1,19 @@ -extern int coff32new(Obj *, int); -extern int coff32read(Obj *, FILE *); -extern int coff32setidx(long, char **, long *, FILE *); -extern int coff32getidx(long *, char ***, long **, FILE *); -extern int coff32pc2line(Obj *, unsigned long long, char *, int *); -extern int coff32strip(Obj *); -extern void coff32del(Obj *); -extern int coff32write(Obj *, Map *, FILE *); -extern int coff32probe(unsigned char *, char **); -extern int coff32type(char *); +int coff32new(Obj *, int); +int coff32read(Obj *, FILE *); +int coff32setidx(long, char **, long *, FILE *); +int coff32getidx(long *, char ***, long **, FILE *); +int coff32pc2line(Obj *, unsigned long long, char *, int *); +int coff32strip(Obj *); +void coff32del(Obj *); +int coff32write(Obj *, Map *, FILE *); +int coff32probe(unsigned char *, char **); +int coff32type(char *); -extern int coff32xsetidx(int, long , char *[], long[], FILE *); -extern int coff32xgetidx(int, long *, char ***, long **, FILE *); +int coff32xsetidx(int, long , char *[], long[], FILE *); +int coff32xgetidx(int, long *, char ***, long **, FILE *); -extern Symbol *coff32getsym(Obj *, int *, Symbol *); -extern Symbol *coff32setsym(Obj *, int *, Symbol *); -extern Section *coff32getsec(Obj *, int *, Section *); -extern Section *coff32setsec(Obj *, int *, Section *); -extern Map *coff32loadmap(Obj *, FILE *); +Symbol *coff32getsym(Obj *, int *, Symbol *); +Symbol *coff32setsym(Obj *, int *, Symbol *); +Section *coff32getsec(Obj *, int *, Section *); +Section *coff32setsec(Obj *, int *, Section *); +Map *coff32loadmap(Obj *, FILE *); diff --git a/src/libmach/elf/fun.h b/src/libmach/elf/fun.h @@ -1,17 +1,17 @@ -extern int elfnew(Obj *, int); -extern int elfread(Obj *, FILE *); -extern int elfsetidx(long, char **, long *, FILE *); -extern int elfgetidx(long *, char ***, long **, FILE *); -extern int elfpc2line(Obj *, unsigned long long , char *, int *); -extern int elfstrip(Obj *); -extern void elfdel(Obj *); -extern int elfwrite(Obj *, Map *, FILE *); -extern int elfprobe(unsigned char *, char **); -extern int elftype(char *); +int elfnew(Obj *, int); +int elfread(Obj *, FILE *); +int elfsetidx(long, char **, long *, FILE *); +int elfgetidx(long *, char ***, long **, FILE *); +int elfpc2line(Obj *, unsigned long long , char *, int *); +int elfstrip(Obj *); +void elfdel(Obj *); +int elfwrite(Obj *, Map *, FILE *); +int elfprobe(unsigned char *, char **); +int elftype(char *); -extern int elfxsetidx(int long , char *[], long [], FILE *); -extern int elfxgetidx(int, long *, char ***, long **, FILE *); +int elfxsetidx(int long , char *[], long [], FILE *); +int elfxgetidx(int, long *, char ***, long **, FILE *); -extern Symbol *elfgetsym(Obj *, int *, Symbol *); -extern Section *elfgetsec(Obj *, int *, Section *); -extern Map *elfloadmap(Obj *, FILE *); +Symbol *elfgetsym(Obj *, int *, Symbol *); +Section *elfgetsec(Obj *, int *, Section *); +Map *elfloadmap(Obj *, FILE *); diff --git a/src/libmach/libmach.h b/src/libmach/libmach.h @@ -1,7 +1,7 @@ #ifdef stdin -extern int copysec(Mapsec *, FILE *); +int copysec(Mapsec *, FILE *); #endif /* common functions */ -extern int pack(int order, unsigned char *dst, char *fmt, ...); -extern int unpack(int order, unsigned char *src, char *fmt, ...); +int pack(int order, unsigned char *dst, char *fmt, ...); +int unpack(int order, unsigned char *src, char *fmt, ...);