From mboxrd@z Thu Jan 1 00:00:00 1970 From: schmid@snake.iap.physik.tu-darmstadt.de To: gcc-gnats@gcc.gnu.org Subject: c++/2197: "error before '$'", but no '$' in compilation unit Date: Sun, 01 Apr 2001 00:00:00 -0000 Message-id: <200103061936.UAA05983@snake.iap.physik.tu-darmstadt.de> X-SW-Source: 2001-q1/msg02048.html List-Id: >Number: 2197 >Category: c++ >Synopsis: "error before '$'", but no '$' in compilation unit >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Mar 06 10:46:01 PST 2001 >Closed-Date: >Last-Modified: >Originator: Peter Schmid >Release: 3.1 20010304 (experimental) >Organization: TU Darmstadt >Environment: System: Linux kiste 2.4.2 #34 Sun Feb 25 20:03:34 CET 2001 i686 unknown Architecture: i686 SuSE 7.1 GLIBC 2.2 GNU ld version 2.10.91 (with BFD 2.10.1.0.4) host: i686-pc-linux-gnu build: i686-pc-linux-gnu target: i686-pc-linux-gnu configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads=posix --enable-long-long >Description: The following illegal code generates a "parse error before '$'" message. But there is no '$' in the source file or in the preprocessed source code. >How-To-Repeat: source code t.C #define LONG_LONG_MAX 9223372036854775807LL #define LONG_LONG_MIN (-LONG_LONG_MAX-1) template class C {}; template<> public C { }; int main() { } Compiling the program t.C g++ -v -o t t.C -W -Wall -save-temps Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs Configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads=posix --enable-long-long gcc version 3.1 20010304 (experimental) /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/cpp0 -lang-c++ -D_GNU_SOURCE -D__GNUG__=3 -D__EXCEPTIONS -D__GXX_ABI_VERSION=100 -v -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__STDC_HOSTED__=1 -W -Wall -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ t.C t.ii GNU CPP version 3.1 20010304 (experimental) (cpplib) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/local/include/g++-v3 /usr/local/include/g++-v3/i686-pc-linux-gnu /usr/local/include /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include /usr/local/i686-pc-linux-gnu/include /usr/include End of search list. /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/cc1plus -fpreprocessed t.ii -quiet -dumpbase t.C -W -Wall -version -o t.s GNU CPP version 3.1 20010304 (experimental) (cpplib) (i386 Linux/ELF) GNU C++ version 3.1 20010304 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 3.1 20010304 (experimental). t.C:8: parse error before `$' Preprocessed source code t.ii # 4 "t.C" template class C {}; template<> public C { }; int main() { } >Fix: Remove the keyword public. But than g++ stops with an internal compiler error, though. >Release-Note: >Audit-Trail: >Unformatted: