From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.2.1) Gecko/20010901 Description of problem: Compiler gets confused by some bad code and prints 'Internal error #382'. As a 'beginner' in C++, I would prefer a better error message. Best, Peter. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1.Compile program using 'gcc bug382.c', or 'gcc3 bug382.c': bug382.cc: namespace mc { class A { /// next line 'protected:' or 'public:' triggers the internal bug public: A() { }; }; }// end namespace mc using ::mc; Actual Results: bug382.cc:14: Internal error #382. bug382.cc:14: confused by earlier errors, bailing out Expected Results: More meaningful error message about missing namespace identifier in statement 'using ::mc'. The code should read 'using namespace mc', or 'using mc::A'. Additional info: *******************************************Output of gcc: Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98) /usr/lib/gcc-lib/i386-redhat-linux/2.96/cpp0 -lang-c++ -D__GNUG__=2 -D__EXCEPTIONS -v -D__GNUC__=2 -D__GNUC_MINOR__=96 -D__GNUC_PATCHLEVEL__=0 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__NO_INLINE__ -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_i386__ bug382.cc bug382.ii GNU CPP version 2.96 20000731 (Red Hat Linux 7.1 2.96-98) (cpplib) (i386 Linux/ELF) ignoring nonexistent directory "/usr/i386-redhat-linux/include" #include "..." search starts here: #include <...> search starts here: /usr/include/g++-3 /usr/local/include /usr/lib/gcc-lib/i386-redhat-linux/2.96/include /usr/include End of search list. /usr/lib/gcc-lib/i386-redhat-linux/2.96/cc1plus bug382.ii -quiet -dumpbase bug382.cc -version -o bug382.s GNU C++ version 2.96 20000731 (Red Hat Linux 7.1 2.96-98) (i386-redhat-linux) compiled by GNU C version 2.96 20000731 (Red Hat Linux 7.1 2.96-98). bug382.cc:14: Internal error #382. bug382.cc:14: confused by earlier errors, bailing out *********************Output file bug382.ii # 5 "bug382.cc" namespace mc { class A { public: A() { }; }; } using ::mc; ********************************Output file bug382.s: .file "bug382.cc" .version "01.01" gcc2_compiled.:
Works in g++ 3.2