>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: