This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
typedef'd pointer type and volatile interact (egcs-1.0.3 release)
- To: egcs-bugs at cygnus dot com
- Subject: typedef'd pointer type and volatile interact (egcs-1.0.3 release)
- From: Martin Dorey <MDorey at Madge dot com>
- Date: Wed, 14 Oct 1998 15:23:53 +0100
- Reply-To: mdorey at dev dot madge dot com
// monk.cpp begin
typedef unsigned char* BYTE_P;
void monk ()
{
unsigned char b;
while ((b = *(volatile BYTE_P) (0)));
}
// end monk.cpp
$ egcc -v --save-temps -O -c monk.cpp
Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.90.29/specs
gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)
/usr/lib/gcc-lib/i486-linux/egcs-2.90.29/cpp -lang-c++ -v -undef
-D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -Di386
-D__i386__ -D__ELF__ -Dunix -Dlinux -D__i386__ -D__i386__ -D__ELF__
-D__unix__ -D__linux__ -D__i386 -D__unix -D__linux -Asystem(posix)
-D__EXCEPTIONS -D__OPTIMIZE__ -Di386 -Di486 -Asystem(unix) -Acpu(i386)
-Amachine(i386) -D__i386__ -D__i486__ -Asystem(unix) -Acpu(i386)
-Amachine(i386) monk.cpp monk.ii
GNU CPP version egcs-2.90.29 980515 (egcs-1.0.3 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/include/g++
/usr/local/include
/usr/lib/gcc-lib/i486-linux/egcs-2.90.29/include
/usr/include
End of search list.
/usr/lib/gcc-lib/i486-linux/egcs-2.90.29/cc1plus monk.ii -quiet -dumpbase
monk.cc -O -version -o monk.s
GNU C++ version egcs-2.90.29 980515 (egcs-1.0.3 release) (i486-linux)
compiled by GNU C version egcs-2.90.29 980515 (egcs-1.0.3 release).
as -V -Qy -o monk.o monk.s
GNU assembler version 2.9.1 (i486-linux), using BFD version 2.9.1
Produces assembler that includes the patently bogus while loop:
.L2:
testb %al,%al
jne .L2
--