Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript |
c++ - Error Code Help Requested
When compiling a code with DMC I get the following message: Internal error: cod2 3692 --- errorlevel 1 I have looked on the Digital Mars website for clues as to the meaning of the code, but cannot find any. The code successfully compiles with GCC GNU 4.1.1 and MSVC++ 7.1. Any suggestions as to where to look within the code would be helpful and appreciated. Nov 01 2006
Gregg wrote:Any suggestions as to where to look within the code would be helpful and appreciated. Nov 01 2006
I have a certain familiarity with DMC++ (and other compiler) ICE bugs. Why not post the code (or an effective snapshot of it) and I'll see if I recognise anything. Matthew "Gregg" <no spam.com> wrote in message news:eib632$1pd9$1 digitaldaemon.com...When compiling a code with DMC I get the following message: Internal error: cod2 3692 --- errorlevel 1 I have looked on the Digital Mars website for clues as to the meaning of the code, but cannot find any. The code successfully compiles with GCC GNU 4.1.1 and MSVC++ 7.1. Any suggestions as to where to look within the code would be helpful and appreciated. Nov 01 2006
Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Attached is about as simple an example of the problem as I can get. As noted in my original post, it compiles (and links and runs) successfully with GCC GNU 4.1.1 and MSVC++ 7.1 and compiles successfully with Comeau 4.3.8 (using their online test tool). When I run the code in its attached form I get the following compile time error message: Internal error: cod1 1293 --- errorlevel 1 When class A is defined in separate source and header files, compiling the source file yields the error message I mentioned in my earlier post. The compile command I am using is: dmc -Ic:\dm\stlport\stlport TestInline.cpp The problem seems to involve combinations of the use of inline, static, and std::pair. I've seen this before and have work arounds, but that becomes cumbersome when dealing with existing library code (e.g., special versions of library code for use w/ DMC). Thanks again for any help. Matthew wrote:I have a certain familiarity with DMC++ (and other compiler) ICE bugs. Why not post the code (or an effective snapshot of it) and I'll see if I recognise anything. Matthew "Gregg" <no spam.com> wrote in message news:eib632$1pd9$1 digitaldaemon.com...When compiling a code with DMC I get the following message: Internal error: cod2 3692 --- errorlevel 1 Nov 02 2006
Gregg wrote:Attached is about as simple an example of the problem as I can get. Nov 02 2006
Hi I think you've done an excellent job of paring it down for Walter's purposes - i.e. to be able to replicate, identify and fix the bug - but probably a little too much for the kind of workarounds I'm familiar with. ;-) If Walter can get this fixed soonish, that's probably your best bet. If not, or if you can't wait for a new beta, I'd be happy to take a look at something a little more substantial. From what you've presented, several things come to mind, but they may not be appropriate in the real code. FWIW: - use a custom template pair instead of std::pair - use a non-template pair instead of std::pair - use a static reference and a static ptr+auto_ptr, e.g. typedef std::pair<int, int> pair_t; static std::auto_ptr<pair_t> b_(new pair_t(1, 1)); static pair_t &b = *b_.get(); (Note: this has thread-safety implications.) - move the static into another function / scope, e.g. into a local namespace That's all I can think of right now. HTH "Gregg" <no spam.com> wrote in message news:eidasr$p4v$1 digitaldaemon.com...Attached is about as simple an example of the problem as I can get. As noted in my original post, it compiles (and links and runs) successfully with GCC GNU 4.1.1 and MSVC++ 7.1 and compiles successfully with Comeau 4.3.8 (using their online test tool). When I run the code in its attached form I get the following compile time error message: Internal error: cod1 1293 --- errorlevel 1 When class A is defined in separate source and header files, compiling the source file yields the error message I mentioned in my earlier post. The compile command I am using is: dmc -Ic:\dm\stlport\stlport TestInline.cpp The problem seems to involve combinations of the use of inline, static, and std::pair. I've seen this before and have work arounds, but that becomes cumbersome when dealing with existing library code (e.g., special versions of library code for use w/ DMC). Thanks again for any help. Matthew wrote:I have a certain familiarity with DMC++ (and other compiler) ICE bugs. Nov 04 2006
Matthew wrote:- use a custom template pair instead of std::pair - use a non-template pair instead of std::pair - use a static reference and a static ptr+auto_ptr, e.g. typedef std::pair<int, int> pair_t; static std::auto_ptr<pair_t> b_(new pair_t(1, 1)); static pair_t &b = *b_.get(); (Note: this has thread-safety implications.) - move the static into another function / scope, e.g. into a local namespace Nov 05 2006
All good suggestions to be sure. I've opted for the simplest change to the existing code: comment out the inline statement. I'm hoping this change stands the least chance of breaking something else. Nov 05 2006
|