I reported a compiler bug to Metrowerks last week. They have denied responsibility, so at their suggestion I have come here for help. Below is my detailed bug report, including a small code snippet that causes the compiler to crash. I also included Metrowerks' response.
A workaround and/or compiler patch would be greatly appreciated.
Schema Software, Inc.
Thanks for writing. It looks like this is a problem with the Symbian tools, as opposed to CodeWarrior. Since we just bundle the tools and SDKs with our environment we do not have control over this software. The best approach would be to report this on Forum Nokia and Ericsson Mobility World:
Or perhaps contact Symbian directly since this happens with both Nokia and Sony Ericsson SDKs:
Motorola Metrowerks Developer Support
Service Request Number: (edited out)
Date Opened :
Abstract : bug report
Description : User: Mark Ambachtsheer
Company: Schema Software, Inc.
Phone: 604-682-3404 x118
CodeWarrior itself: (edited out)
Technical Support: (edited out)
Product Name: C/C++
Version Name: CodeWarrior Development Studio for Symbian OS Professional
Running On: Windows 2000
Generating: Symbian THUMB or ARMI
Model of computer used: PC clone
Computer's Processor: PIII
Operating System: Windows 2000
Bug severity: crashes application
Compile the attached small code example using the following commands:
abld build thumb urel
abld build armi urel
expected: compiles, or gives errors
result: compiler crashes, leaving a .core file
This happens with the Series60 OS kit and the UIQ OS kit shipped with
The crashing application, cc1plus.exe, has the following path on my machine:
(This is from the UIQ OS kit shipped with CodeWarrior).
I have also reproduced the source code from the .zip file below.
Please let me know if/when you can provide a fix, and/or a workaround.
template<class _KeyType, class _ValType >
template <class T>
typedef TemplateClassA<unsigned long, T> mapT;
mapT::const_iterator begin () const;
ClassAEnumerator (const TemplateClassB<Value>::mapT::const_iterator&
const TemplateClassB<Value>::mapT::const_iterator& in_end)