This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

help me



#include	<stdio.h>
/*	
	hello.	
	dear	egcs-bugs@cygnus.com.		
	I am japanese.
		so poor English speaker.

	I have 2 question.
	Please	hit
		%g++ thi_smail.c  -O -Wall
	Please teach me reason.
*/
/****************************************/
/*	HELP!!! 	PART1		*/
/*					*/
/*	diff result.			*/
/*		gcc vs gcc -O		*/
/*		g++ vs g++ -O		*/
/*	why?????			*/
/*		optimize trouble?	*/
/*		C lang spec ??		*/
/****************************************/
struct	stag{	
	int	val1  :3;
	int	val2  :3;
};
struct stag	SR ;
void	Why_ever_OFF(void)
{
	if( ( SR.val1 & 4 )
	&&  ( SR.val2 & 4 )){
		printf("ON\n") ;
	} else {
		printf("OFF\n") ;
	}
}
static	void	help1(void)
{
	int	i ;
	int	j ;
	for(i = 0 ; i < 10 ; i++) {
		for(j = 0 ; j < 10 ; j++) {
			SR.val1 = i ;
			SR.val2 = j ;
			Why_ever_OFF() ;
		}
	}
}
/****************************************/
/*	HELP!!! 	PART2		*/
/*					*/
/*	why this warnnig ??		*/
/*					*/
/*	gcc -Wall => no warnnig.	*/
/*		BUT.			*/
/*	g++ -Wall => warnnig.		*/
/*
	help.c:56: warning: value computed is not used			
	help.c:57: warning: value computed is not used			
	help.c:58: warning: value computed is not used			
	help.c:59: warning: value computed is not used			
	help.c:60: warning: value computed is not used			
	help.c:61: warning: value computed is not used		*/	
/****************************************/
struct	tag	{
	unsigned	val:8 ;
	unsigned char	val2 ;
} ;
static	struct	tag	R ;
void	help2(void)
{
	struct	tag	*p ;	

/*----------------------WHY WHY WHY ----------------------------*/
	p = &R ;
	p->val	= 0x7F ;	printf("%x\n",p->val) ; 	
	p->val++ ;		printf("%x\n",p->val) ; 		
	p->val-- ;		printf("%x\n",p->val) ; 		
	(p->val)++ ;		printf("%x\n",p->val) ; 		
	(p->val)-- ;		printf("%x\n",p->val) ; 		
	(p)->val++ ;		printf("%x\n",p->val) ; 		
	(p)->val-- ;		printf("%x\n",p->val) ; 		
/*----------------------OK OK OK -------------------------------*/
	p = &R ;
	p->val2  = 0x7F ;	 printf("%x\n",p->val2) ;	
	p->val2++ ;		 printf("%x\n",p->val2) ;		
	p->val2-- ;		 printf("%x\n",p->val2) ;		
	(p->val2)++ ;		 printf("%x\n",p->val2) ;		
	(p->val2)-- ;		 printf("%x\n",p->val2) ;		
	(p)->val2++ ;		 printf("%x\n",p->val2) ;		
	(p)->val2-- ;		 printf("%x\n",p->val2) ;		
}

int	main(void)
{
	help1() ;
	help2() ;

	return(0) ;
}
/*	I use this gcc
Reading specs from /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/specs
gcc version 2.9-gnupro-98r2
 /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/cpp -lang-c++ -v -iprefix /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/ -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=9 -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__OPTIMIZE__ -Wall -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) help.c /export/home/tmp/ccY6obz5.ii
GNU CPP version 2.9-gnupro-98r2 (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/../../../../../include/g++
 /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/../../../../../include
 /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/../../../../sparc-sun-solaris2.6/include
 /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/include
 /usr/cygnus/gnupro-98r2/H-sparc-sun-solaris2.6/lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/../../../../../include/g++
 /usr/cygnus/gnupro-98r2/H-sparc-sun-solaris2.6/lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/../../../../../include
 /usr/cygnus/gnupro-98r2/H-sparc-sun-solaris2.6/lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/../../../../sparc-sun-solaris2.6/include
 /usr/cygnus/gnupro-98r2/H-sparc-sun-solaris2.6/lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/include
 /usr/include
End of search list.
 /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/cc1plus /export/home/tmp/ccY6obz5.ii -quiet -dumpbase help.cc -O -Wall -version -o /export/home/tmp/ccSiE5f1.s
GNU C++ version 2.9-gnupro-98r2 (sparc-sun-solaris2.6) compiled by GNU C version 2.9-gnupro-98r2.
help.c: In function `void ex2()':
help.c:21: warning: comparison is always zero
help.c: In function `void help2()':
help.c:67: warning: value computed is not used
help.c:68: warning: value computed is not used
help.c:69: warning: value computed is not used
help.c:70: warning: value computed is not used
help.c:71: warning: value computed is not used
help.c:72: warning: value computed is not used
 /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/../../../../sparc-sun-solaris2.6/bin/as -V -Qy -s -o /export/home/tmp/cc4Z8JR4.o /export/home/tmp/ccSiE5f1.s
GNU assembler version 2.9-gnupro-98r2 (sparc-sun-solaris2.6) using BFD version 2.9-gnupro-98r2
 /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/collect2 -V -Y P,/usr/ccs/lib:/usr/lib -Qy /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/crt1.o /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/crti.o /usr/ccs/lib/values-Xa.o /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/crtbegin.o -L/usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2 -L/usr/gnupro/bin/../lib/gcc-lib -L/usr/cygnus/gnupro-98r2/H-sparc-sun-solaris2.6/lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2 -L/usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/../../../../sparc-sun-solaris2.6/lib -L/usr/cygnus/gnupro-98r2/H-sparc-sun-solaris2.6/lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/../../../../sparc-sun-solaris2.6/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/../../.. -L/usr/cygnus/gnupro-98r2/H-sparc-sun-solaris2.6/lib/gcc-lib/sparc-sun-!
 so!
laris2.6/2.9-gnupro-98r2/../../.. /export/home/tmp/cc4Z8JR4.o -lstdc++ -lm -lgcc -lc -lgcc /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/crtend.o /usr/gnupro/bin/../lib/gcc-lib/sparc-sun-solaris2.6/2.9-gnupro-98r2/crtn.o
GNU ld version 2.9-gnupro-98r2 (with BFD 2.9-gnupro-98r2)
  Supported emulations:
   elf32_sparc
*/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]