From: meissner@osf.ORG
Subject: Gcc2 -dN switch doesn't work
Organization: GNUs Not Usenet
Distribution: gnu
Date: Wed, 12 Aug 1992 10:20:08 GMT

The -dN switch (which is supposed to dump all macro names at the end
of preprocessing) doesn't actually dump the names, it just dumps out
#define, which is kind of useless.  The -dD output does give the
desired information (along with the preprocessed output), so maybe we
should just delete -dN support.

For example on OSF/1, with the file:

	#include <stdio.h>

	main(){
		printf("Hello World!\n");
		return 0;
	}

I get the output (I have squished blank lines):

	# 1 "hello2.c"
	# 1 "/usr/include/stdio.h" 1 3
	#define
	# 1 "/usr/include/standards.h" 1 3
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	# 172 "/usr/include/stdio.h" 2 3
	#define
	#define
	typedef unsigned long	size_t;
	#define
	typedef long	fpos_t;
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	# 1 "/usr/include/sys/seek.h" 1 3
	#define
	#define
	#define
	#define
	# 238 "/usr/include/stdio.h" 2 3
	typedef struct {
		int	_cnt;
		unsigned char	*_ptr;
		unsigned char	*_base;
		int	_bufsiz;
		short	_flag;
		short	_file;
		long	_unused[2];
		char	*__newbase;
		unsigned char	*_bufendp;
	} FILE;
	extern FILE	__iob[];
	#define
	#define
	#define
	#define
	#define
	extern size_t	fread (void *, size_t, size_t, FILE *) ;
	extern size_t	fwrite (const void *, size_t, size_t, FILE *) ;
	extern int	__flsbuf (int, FILE *) ;
	extern int	__filbuf (FILE *) ;
	extern int 	ferror (FILE *) ;
	extern int 	feof (FILE *) ;
	extern void 	clearerr (FILE *) ;
	extern int 	putchar (int) ;
	extern int 	getchar (void) ;
	extern int 	putc (int, FILE *) ;
	extern int 	getc (FILE *) ;
	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 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	sprintf (char *, const char *, ...) ;
	extern int	sscanf (const char *, const char *, ...) ;
	#define
	# 1 "/usr/include/va_list.h" 1 3
	#define
	typedef char *__va_list;
	# 306 "/usr/include/stdio.h" 2 3
	extern int  vfprintf (FILE *, const char *, __va_list) ;
	extern int  vprintf (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 char 	*gets (char *) ;
	extern int 	puts (const char *) ;
	extern int	ungetc (int, 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 	perror (const char *) ;
	#define
	#define
	#define
	#define
	#define
	#define
	# 392 "/usr/include/stdio.h" 3
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	# 1 "/usr/include/sys/types.h" 1 3
	#define
	# 1 "/usr/include/machine/types.h" 1 3
	typedef	struct	{ int r[1]; } *physadr_t;
	typedef	struct	label_t	{
		int	val[12];
	} label_t;
	typedef	physadr_t	physadr;
	#define
	#define
	#define
	# 150 "/usr/include/sys/types.h" 2 3
	#define
	typedef int             ptrdiff_t;
	#define
	#define
	    typedef unsigned int  wchar_t;
	#define
	typedef unsigned int wctype_t;
	#define
	typedef long            time_t;
	#define
	typedef unsigned int 	clock_t;
	typedef long	ssize_t;
	typedef	unsigned char	uchar_t;
	typedef	unsigned short	ushort_t;
	typedef	unsigned int	uint_t;
	typedef unsigned long	ulong_t;
	typedef long		level_t;
	typedef	long		daddr_t;	 
	typedef	char *		caddr_t;	 
	typedef long *  	qaddr_t;         
	typedef	ulong_t		ino_t;		 
	typedef short		cnt_t;
	typedef long		dev_t;		 
	typedef long    off_t;			 
	typedef	long		paddr_t;
	typedef	ushort_t	nlink_t;
	typedef long    	key_t;		 
	typedef	ulong_t		mode_t;		 
	typedef ulong_t		uid_t;		 
	typedef ulong_t		gid_t;		 
	typedef	void *		mid_t;		 
	typedef	long		pid_t;		 
	typedef char		slab_t[12];	 
	#define
		typedef unsigned int wint_t;          
	typedef unsigned int 	sigset_t;
	#define
	#define
	typedef void (*sig_t)(int);
	# 1 "/usr/include/mach/machine/vm_types.h" 1 3
	#define
	typedef	unsigned int	vm_offset_t;
	typedef	unsigned int	vm_size_t;
	# 275 "/usr/include/sys/types.h" 2 3
	typedef	uchar_t		uchar;
	typedef	ushort_t	ushort;
	typedef	uint_t		uint;
	typedef ulong_t		ulong;
	typedef	uchar_t		u_char;
	typedef	ushort_t 	u_short;
	typedef	uint_t		u_int;
	typedef	ulong_t		u_long;
	typedef struct  _quad { long val[2]; } quad;
	typedef	long	swblk_t;
	typedef u_long	fixpt_t;
	#define
	#define
	typedef long	fd_mask;
	#define
	#define
	typedef	struct fd_set {
		fd_mask	fds_bits[(((256 )+(( (sizeof(fd_mask) * 8		)	)-1))/( (sizeof(fd_mask) * 8		)	)) ];
	} fd_set;
	#define
	#define
	#define
	#define
	# 416 "/usr/include/stdio.h" 2 3
	#define
	#define
	extern int 	fileno (FILE *) ;
	extern FILE 	*fdopen (int, const char *) ;
	#define
	#define
	extern int 	getw (FILE *) ;
	extern int 	pclose (FILE *) ;
	extern int 	putw (int, FILE*) ;
	extern FILE 	*popen (const char *, const char *) ;
	extern char 	*tempnam (const char*, const char*) ;
	# 1 "/usr/include/sys/limits.h" 1 3
	#define
	# 1 "/usr/include/machine/machlimits.h" 1 3
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	# 131 "/usr/include/sys/limits.h" 2 3
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	# 1 "/usr/include/sys/syslimits.h" 1 3
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	# 203 "/usr/include/sys/limits.h" 2 3
	# 1 "/usr/ccs/gcc-lib/mips-dec-osfrose/2.2.2/include/float.h" 1 3
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	# 215 "/usr/include/sys/limits.h" 2 3
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	# 447 "/usr/include/stdio.h" 2 3
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	#define
	extern void 	setbuffer (FILE *, char*, int) ;
	extern void 	setlinebuf (FILE *) ;
	# 1 "hello2.c" 2
	main(){
		printf("Hello World!\n");
		return 0;
	}

Newsgroups: gnu.gcc.bug