MATLAB: Does MATLAB 6.5 (R13) crash when I use BITCMP on a UINT class datatype in a function file

bitcmpclasscrashMATLABsegsegmentationuintuint16uint32uint8vioviolation

MATLAB crashes whenever I pass a UINT8, UINT16, or UINT32 datatype to the BITCMP function in a function file. It does't crash when I use the same command at the command line.
MATLAB crashes with the following message:
-----------------
Segmentation violation detected at Tue Dec 03 17:59:07 2002
-----------------
Configuration:
MATLAB Version: 6.5.0.180913a (R13)
Operating System: Microsoft Windows 2000
Window System:Version 5.0 (Build 2195: Service Pack 2)
Processor ID: x86 Family 6 Model 8 Stepping 6, GenuineIntel
Virtual Machine:Java 1.3.1_01 with Sun Microsystems Inc. Java HotSpot(TM) Client VM
(mixed mode)
Register State:
EAX = 01b665c8EBX = 00000073
ECX = 00000000EDX = 00000001
ESI = 00000000EDI = 00000002
EBP = 00dfc964ESP = 00dfc914
EIP = 7a83b1eeFLG = 00010206
Stack Trace:
[0] m_interpreter.dll:_x86EmitOp(0x1ea6bc0c, 115, 1, 2) + 398 bytes
[1] m_interpreter.dll:_x86MathOp(0x1ea6bc0c, 115, 2, 1) + 112 bytes
[2] m_interpreter.dll:_MatlabFcn(0, 1, 0x00dfca6c, 0) + 75 bytes
[3] m_interpreter.dll:_inWalkPcode(0x1ea6bbec, 0x7a83be80, 0x7a872738, 0x7a83bef0) + 905 bytes
[4] m_interpreter.dll:_x86jit(0x1ea6bbec, 25, 0x00dfca5c, 1) + 137 bytes
[5] m_interpreter.dll:_accelHandleNestedHotcode(0, 0x1ea6bbf0, 0x1ea6bbf4, 0x00dfcab8) + 100 bytes
[6] m_interpreter.dll:_LineNo(0, 0x00dfca94, 28166, 0x01b43660) + 27 bytes
[7] m_interpreter.dll:_inWalkPcode(0x1ea6bbec, 0x7a8238c0, 0x7a844d40, 0x7a823930) + 905 bytes
[8] m_interpreter.dll:_inGetAccelBytecode(0, 0x00dfcb00, 78, 0) + 220 bytes
[snip]

Best Answer

This bug has been fixed for Release 14 (R14). For previous releases, read below for any possible workarounds:
This is a bug in MATLAB 6.5 (R13).
As a workaround, you can convert the UINT datatype to DOUBLE before the call to BITCMP. You can then convert it back to UINT datatype after the call to BITCMP.