gcc/g++ bug: using "typedef" in a C++ program
Rahul V. Herwadkar
rherwadk@us.oracle.com
Tue Feb 15 12:56:00 GMT 2000
I am attaching a test program "gcc.c" and its preprocessor output
"gcc.ii". I am listing below the error I get when I try to compile this
program. SUN's C++ compiler does not have a problem compiling this file.
vossun1~/work/gnome{1}% cd ~/tmp/
vossun1~/tmp{2}% gcc gcc.C
gcc.C:3: declaration does not declare anything
vossun1~/tmp{3}% g++ gcc.C
gcc.C:3: declaration does not declare anything
vossun1~/tmp{4}% gcc -v --save-temps gcc.C
Reading specs from
/home/rherwadk/packages/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)
/home/rherwadk/packages/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/cpp
-lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus
-Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__
-D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix)
-Asystem(svr4) -D__EXCEPTIONS -D__GCC_NEW_VARARGS__ -Acpu(sparc)
-Amachine(sparc) gcc.C gcc.ii
GNU CPP version 2.95.2 19991024 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/home/rherwadk/packages/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/../../../../include/g++-3
/usr/local/include
/home/rherwadk/packages/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/../../../../sparc-sun-solaris2.6/include
/home/rherwadk/packages/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/include
/usr/include
End of search list.
The following default directories have been omitted from the search
path:
End of omitted list.
/home/rherwadk/packages/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/cc1plus
gcc.ii -quiet -dumpbase gcc.cc -version -o gcc.s
GNU C++ version 2.95.2 19991024 (release) (sparc-sun-solaris2.6)
compiled by GNU C version 2.95.2 19991024 (release).
gcc.C:3: declaration does not declare anything
vossun1~/tmp{5}%
Please let me know what you think.
--
Rahul V. Herwadkar, Concurrent Systems Group, Oracle Corp.
Phone: (650) 506-8130 [work], (650) 578-8130 [home]
gcc.C
# 1 "gcc.C"
# 1 "/usr/include/stdio.h" 1 3 4
#pragma ident "@(#)stdio.h 1.49 97/05/09 SMI"
# 1 "/usr/include/sys/feature_tests.h" 1 3 4
#pragma ident "@(#)feature_tests.h 1.13 97/06/26 SMI"
extern "C" {
}
# 17 "/usr/include/stdio.h" 2 3 4
# 1 "/usr/include/sys/va_list.h" 1 3 4
#pragma ident "@(#)va_list.h 1.6 96/01/26 SMI"
extern "C" {
# 41 "/usr/include/sys/va_list.h" 3 4
typedef void *__va_list;
}
# 18 "/usr/include/stdio.h" 2 3 4
extern "C" {
typedef unsigned int size_t;
typedef long long __longlong_t;
typedef long off_t;
typedef __longlong_t off64_t;
typedef long fpos_t;
typedef __longlong_t fpos64_t;
# 122 "/usr/include/stdio.h" 3 4
typedef struct
{
int _cnt;
unsigned char *_ptr;
unsigned char *_base;
unsigned char _flag;
unsigned char _file;
} FILE;
extern FILE __iob[20 ];
extern FILE *_lastbuf;
extern unsigned char *_bufendtab[];
extern unsigned char _sibuf[], _sobuf[];
# 222 "/usr/include/stdio.h" 3 4
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 *, const char *);
extern FILE *freopen(const char *, const char *, FILE *);
extern void setbuf(FILE *, char *);
extern void setbuffer(FILE *, char *, size_t);
extern int setlinebuf(FILE *);
extern int setvbuf(FILE *, char *, int, size_t);
extern int fprintf(FILE *, const char *, ...);
extern int fscanf(FILE *, const char *, ...);
extern int printf(const char *, ...);
extern int scanf(const char *, ...);
extern int snprintf(char *, size_t, const char *, ...);
extern int sprintf(char *, const char *, ...);
extern int sscanf(const char *, const char *, ...);
extern int vfprintf(FILE *, const char *, __va_list);
extern int vprintf(const char *, __va_list);
extern int vsnprintf(char *, size_t, const char *, __va_list);
extern int vsprintf(char *, const char *, __va_list);
extern int fgetc(FILE *);
extern char *fgets(char *, int, FILE *);
extern int fputc(int, FILE *);
extern int fputs(const char *, FILE *);
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 *, size_t, size_t, FILE *);
extern size_t fwrite(const void *, size_t, size_t, FILE *);
extern int fgetpos(FILE *, fpos_t *);
extern int fseek(FILE *, long, int);
extern int fsetpos(FILE *, const fpos_t *);
extern long ftell(FILE *);
extern void rewind(FILE *);
extern void clearerr(FILE *);
extern int feof(FILE *);
extern int ferror(FILE *);
extern void perror(const char *);
extern int __filbuf(FILE *);
extern int __flsbuf(int, FILE *);
extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);
# 319 "/usr/include/stdio.h" 3 4
extern FILE *popen(const char *, const char *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);
extern int pclose(FILE *);
extern int fseeko(FILE *, off_t, int);
extern off_t ftello(FILE *);
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos64_t *);
extern int fsetpos64(FILE *, const fpos64_t *);
extern int fseeko64(FILE *, off64_t, int);
extern off64_t ftello64(FILE *);
# 467 "/usr/include/stdio.h" 3 4
# 515 "/usr/include/stdio.h" 3 4
}
# 1 "gcc.C" 2
typedef unsigned int bool;
main()
{
bool a;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gcc.C
Type: text/x-c
Size: 69 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-bugs/attachments/20000215/cf852a84/attachment.bin>
More information about the Gcc-bugs
mailing list