This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
c++/6930: different behavior in 3.1 and 3.0.4
- From: thomas at koeller dot dyndns dot org
- To: gcc-gnats at gcc dot gnu dot org
- Cc: thomas at koeller dot dyndns dot org
- Date: Tue, 4 Jun 2002 22:40:04 +0200 (CEST)
- Subject: c++/6930: different behavior in 3.1 and 3.0.4
>Number: 6930
>Category: c++
>Synopsis: different behavior in 3.1 and 3.0.4
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: rejects-legal
>Submitter-Id: net
>Arrival-Date: Tue Jun 04 13:46:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Thomas Koeller
>Release: 3.1
>Organization:
>Environment:
System: Linux sarkovy.koeller.dyndns.org 2.4.18 #3 Sam Mär 23 01:29:53 CET 2002 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: /home/thomas/src/gnu/gcc-3.1/configure --prefix=/opt/gcc-3.1 --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --with-system-zlib --enable-threads=posix
>Description:
The attached example program is accepted by gcc-3.0.4, but is rejected
by gcc-3.1.
>How-To-Repeat:
Compile this example program:
---
extern "C" void func(void);
extern "C" void func(void) __attribute__((weak, alias("__func")));
void __func(void){}
---
These are the results:
bash-2.05a$ /opt/gcc-v3/bin/g++ -V 3.0.4 -fsyntax-only testprog.cxx
bash-2.05a$ /opt/gcc-v3/bin/g++ -V 3.1 -fsyntax-only testprog.cxx
testprog.cxx:2: `void func()' defined both normally and as an alias
testprog.cxx:2: weak declaration of `void func()' must precede definition
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: