This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
c++/76: Re: g++ 2.95.2 bug report
- To: gcc-gnats at sourceware dot cygnus dot com
- Subject: c++/76: Re: g++ 2.95.2 bug report
- From: "Martin v. Loewis" <martin at loewis dot home dot cs dot tu-berlin dot de>
- Date: Sun, 5 Mar 2000 21:17:18 +0100
- References: <51C9F3C392D0D111A15600A0C99E64A9015189BB@localhost>
- Resent-Cc: gcc-prs at gcc dot gnu dot org
- Resent-Reply-To: gcc-gnats@gcc.gnu.org, "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
Note: There was a bad value `[bad' for the field `>Severity:'.
It was set to the default value of `serious'.
>Number: 76
>Category: c++
>Synopsis: g++ 2.95.2 bug report
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Mar 05 12:36:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator: Jay Baus <baus@roguewave.com>
>Release: 2.95.2
>Organization:
>Environment:
>Description:
Original-Message-ID: <51C9F3C392D0D111A15600A0C99E64A9015189BB@localhost>
Date: Mon, 29 Nov 1999 14:40:37 -0700
Hello,
The following is a bug report for the g++ 2.95.2 compiler.
It appears that template functions incorrectly handle const char array
arguments. Here's the example program:
$ cat bug.cpp
#include <stdio.h>
template <class charT>
void foo(const charT* b){
printf("\npointer address inside foo() -->%x\n",b);
}
int main(){
char a[]="char arrays -- ok.";
char *b="char ptrs -- ok";
const char c[]="const char arrays -- addresses not equal";
printf("\n%s:\npointer address passed to foo() -->%x",a,a);
foo(a);
printf("\n%s\npointer address passed to foo() -->%x",b,b);
foo(b);
printf("\n%s\npointer address passed to foo() -->%x",c,c);
foo(c);
return 0;
}
The output on my machine is:
$ ./bug
char arrays -- ok.:
pointer address passed to foo() -->bffffa14
pointer address inside foo() -->bffffa14
char ptrs -- ok
pointer address passed to foo() -->8048933
pointer address inside foo() -->8048933
const char arrays -- addresses not equal
pointer address passed to foo() -->bffff9e4
pointer address inside foo() -->8048960
Compilation details:
$ g++ -v -c bug.cpp
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
gcc version 2.95.2 19991024 (release)
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2
-D__GNU
G__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux
-D__
ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix)
-D__E
XCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686
-Dpentiu
mpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ bug.cpp
/tmp/ccKPQffp.i
i
GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3
/usr/local/include
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/incl
ude
/usr/lib/gcc-lib/i686-pc-linux-gnu/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.
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus /tmp/ccKPQffp.ii -quiet
-dump
base bug.cc -version -o /tmp/ccYxuoeF.s
GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by
GNU C
version 2.95.2 19991024 (release).
as -V -Qy -o bug.o /tmp/ccYxuoeF.s
GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version
2.9.1.0.23
$ g++ -v bug.o -o bug
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
gcc version 2.95.2 19991024 (release)
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/collect2 -m elf_i386
-dynamic-linker
/lib/ld-linux.so.2 -o bug /usr/lib/crt1.o /usr/lib/crti.o
/usr/lib/gcc-lib/i686-
pc-linux-gnu/2.95.2/crtbegin.o -L/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2
bug.o
-lstdc++ -lm -lgcc -lc -lgcc
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/crtend.o
/usr/lib/crtn.o
Thank You,
Jay Baus
=========================
Jay M. Baus, Software Engineer
Rogue Wave Software, Inc.
(303)545-3197 baus@roguewave.com
=========================
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: