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