c++/300: Re: g++ 2.96 bug handling 'extern'.
Martin v. Loewis
martin@loewis.home.cs.tu-berlin.de
Fri Jun 9 01:26:00 GMT 2000
>Number: 300
>Category: c++
>Synopsis: g++ 2.96 bug handling 'extern'.
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: analyzed
>Class: rejects-legal
>Submitter-Id: net
>Arrival-Date: Fri Jun 09 01:26:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator: Sergei Organov <osv@javad.ru>
>Release: 2.96
>Organization:
>Environment:
>Description:
Date: 08 Jun 2000 11:18:33 +0400
Original-Message-ID: <87g0qoej3q.fsf@osv.javad.ru>
Lines: 43
Hello,
'cc1plus' version 2.96 20000530 (experimental) still doesn't permit matching
external declarations inside functions. Neither cc1-2.96 nor cc1plus-2.95.2
have the problem. The diagnostic is surprising:
extern.cc: In function `void foo ()':
extern.cc:7: declaration of `int j'
extern.cc:6: conflicts with previous declaration `int j'
How to reproduce:
osv@osv$ cat extern.cc
extern int i;
void foo(void)
{
extern int i;
extern int i;
extern int j;
extern int j;
}
osv@osv$ ~/try/bin/ppc-eabi-g++ -c -v extern.cc
Reading specs from /home/osv/try/lib/gcc-lib/ppc-eabi/2.96/specs
gcc version 2.96 20000530 (experimental)
/home/osv/try/lib/gcc-lib/ppc-eabi/2.96/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=96 -D__GNUC_PATCHLEVEL__=0 -D__cplusplus -DPPC -D__embedded__ -D__PPC__ -D__embedded__ -D__PPC -Asystem(embedded) -Acpu(powerpc) -Amachine(powerpc) -D__EXCEPTIONS -D__CHAR_UNSIGNED__ -D_CALL_SYSV -D_BIG_ENDIAN -D__BIG_ENDIAN__ -Amachine(bigendian) -D_ARCH_PPC extern.cc /tmp/cc837Djf.ii
GNU CPP version 2.96 20000530 (experimental) (cpplib)
(PowerPC Embedded)
ignoring nonexistent directory `/home/osv/try/ppc-eabi/sys-include'
#include "..." search starts here:
#include <...> search starts here:
/home/osv/try/include/g++-
/home/osv/try/lib/gcc-lib/ppc-eabi/2.96/include
/home/osv/try/ppc-eabi/include
End of search list.
/home/osv/try/lib/gcc-lib/ppc-eabi/2.96/cc1plus /tmp/cc837Djf.ii -quiet -dumpbase extern.cc -version -o /tmp/ccy2KPrm.s
GNU C++ version 2.96 20000530 (experimental) (ppc-eabi) compiled by GNU C version 2.95.2 20000220 (Debian GNU/Linux).
extern.cc: In function `void foo ()':
extern.cc:7: declaration of `int j'
extern.cc:6: conflicts with previous declaration `int j'
osv@osv$
BR,
Sergei Organov.
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-prs
mailing list