Issue Details (XML | Word | Printable)

Key: STDCXX-545
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Blocker Blocker
Assignee: Martin Sebor
Reporter: Andrew Black
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

[Sun C++ 5.9/x86_64] ube ICE in collate.ccp

Created: 06/Sep/07 05:00 PM   Updated: 13/Sep/07 12:42 AM
Return to search
Component/s: Utilities
Affects Version/s: None
Fix Version/s: 4.2.0

Time Tracking:
Not Specified

Environment:
CC: Sun C++ 5.9 SunOS_i386 2007/05/03 (SunOS marbles 5.10 Generic_118855-33 i86pc i386 i86pc)
CC: Sun C++ 5.9 Linux_i386 2007/05/03 (Linux jacks 2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 2005 x86_64 x86_64 x86_64 GNU/Linux)
Issue Links:
Dependants
 

Severity: Compiler Error
Resolution Date: 13/Sep/07 12:42 AM


 Description  « Hide
When compiling the locale utility in release mode on x86 hardware with the Sunpro 5.9 compiler, a UBE error is triggered when attempting to build the collate.cpp source. This appears to only trigger in wide mode (at least on Solaris).

For Solaris on AMD64 hardware, the error observed is:
CC -c -mt -I$(TOPDIR)/include -I$(BUILDDIR)/include -library=%none -O -m64 +w -errtags -erroff=hidef $(TOPDIR)/util/collate.cpp
...
"collate.cpp", [__1cDDefNprocess_order6Mrn0ARcollate_section_t_rI_v_]:ube: error: Assert has been violated at '/set/mars/builds.intel-S2/nightly.Thu/intel-S2/lang/ube/machine/src/abi_call.c 172'.

For Linux builds, the error observed is:
CC -c -mt -I$(TOPDIR)/include -I$(BUILDDIR)/include -library=%none -O -xarch=generic +w $(TOPDIR)/util/collate.cpp
...
"collate.cpp", [__1cDDefNprocess_order6Mrn0ARcollate_section_t_rI_v_]:ube: error: Assert has been violated at '/set/mars/builds.intel-Linux/nightly.Thu/intel-Linux/lang/ube/machine/src/abi_call.c 172'.



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Andrew Black added a comment - 06/Sep/07 05:11 PM
These failures were observed in nightly testing, and I have not had time to reduce the file to a test case. The similarity of the error messages between the Linux and Solaris builds indicates to me that the fault lies in the architecture specific portion of the compiler.

For reference, the following links point at run logs which include the failing behavior:
http://people.apache.org/~sebor/stdcxx/results/solaris-10-amd64-sunpro-5.9-12S-572853-log.gz.txt (Solaris 10 AMD64)
http://people.apache.org/~sebor/stdcxx/results/linux_suse-9.1-amd64-sunpro-5.9-12d-570904-log.gz.txt (Suse 9 AMD64)
http://people.apache.org/~sebor/stdcxx/results/linux_redhat_el-4.4-amd64-sunpro-5.9-12d-573119-log.gz.txt (Redhat 4 AMD64)
http://people.apache.org/~sebor/stdcxx/results/linux_redhat_el-4.4-em64t-sunpro-5.9-12d-570904-log.gz.txt (Redhat 4 EM64T)


Martin Sebor added a comment - 11/Sep/07 12:06 AM
The name of the compiler is Sun C++, not Sunpro.
UBE is the the x86/x64 code generator. The error is normally referred to as the Internal Compiler Error (ICE).
This must be fixed (worked around) for the upcoming 4.2 release – changed to Blocker and scheduled accordingly.
Assigned to self.

Martin Sebor made changes - 11/Sep/07 12:06 AM
Field Original Value New Value
Priority Major [ 3 ] Blocker [ 1 ]
Assignee Martin Sebor [ sebor ]
Fix Version/s 4.2 [ 12311945 ]
Summary [Sunpro 5.9 - x86] UBE compiling collate.ccp [Sun C++ 5.9/x86] ube ICE in collate.ccp
Martin Sebor added a comment - 11/Sep/07 12:13 AM
Set Severity to "Compiler Error"

Martin Sebor made changes - 11/Sep/07 12:13 AM
Severity Compiler Error
Martin Sebor made changes - 12/Sep/07 08:24 PM
Link This issue depends on STDCXX-551 [ STDCXX-551 ]
Martin Sebor added a comment - 12/Sep/07 08:24 PM
The linked issue contains a test case for the compiler bug.

Martin Sebor added a comment - 12/Sep/07 11:13 PM
This only happens on x86_64 in wide (64-bit) mode.

Martin Sebor made changes - 12/Sep/07 11:13 PM
Summary [Sun C++ 5.9/x86] ube ICE in collate.ccp [Sun C++ 5.9/x86_64] ube ICE in collate.ccp
Martin Sebor added a comment - 12/Sep/07 11:47 PM
Here's a small test case for this problem:

$ cat t.cpp && gmake t
#include <vector>
int main () {
std::vector<bool> vb;
vb.push_back (false);
}
CC -c -mt -I/amd/devco/sebor/stdcxx/include -I/build/sebor/stdcxx-suncc-5.9-12D/include -I/amd/devco/sebor/stdcxx/examples/include -library=%none -O -m64 +w -errtags -erroff=hidef t.cpp
"t.cpp", [main]:ube: error: Assert has been violated at '/set/mars/builds.intel-S2/nightly.Thu/intel-S2/lang/ube/machine/src/abi_call.c 172'.
gmake: *** [t.o] Error 154


Repository Revision Date User Message
ASF #575128 Wed Sep 12 23:49:06 UTC 2007 sebor 2007-09-12 Martin Sebor <sebor@roguewave.com>

STDCXX-545
* vector (vector<bool>::_C_iter): Explicitly defined a copy ctor
for the nested class to work around a Sun C++ optimizer (ube) ICE
on x86_64.
Files Changed
MODIFY /incubator/stdcxx/trunk/include/vector

Martin Sebor added a comment - 13/Sep/07 12:42 AM
The committed change resolved the problem in my manual build. Will close after we've seen a representative set of successful builds.

Martin Sebor made changes - 13/Sep/07 12:42 AM
Resolution Fixed [ 1 ]
Status Open [ 1 ] Resolved [ 5 ]