[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference decwet::visual

Title:Microsoft Visual C++ bug reports and kits
Notice:Register in Topic 2. 5.Last for latest Kit
Moderator:DECWET::THOMASN
Created:Tue May 17 1994
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:521
Total number of notes:2938

515.0. "INTERNAL COMPILER ERROR on Alpha & Intel" by HYDRA::AMORELLI () Thu May 15 1997 13:38

The sample code included demonstrates an "INTERNAL COMPILER ERROR" bug
in the cl.exe (msc1.cpp) compiler in MS VC++ 5.0 Intel & Alpha. The error
occurs when exception handling is enabled (/GX).

To re-create the error do the following:

-Run MSDEV
-Drop the file "bug.cpp" into the project window.
-Compile (F7) using default Project Setting.
 (Accept the default project workspace)

** THEN...

-Change Project Setting (Alt-F7) by:
-Removing exception handling option, /GX
 (Select C/C++ Tab, Catagory C++ Langauge, Disable "Enable exception handling")
-OK
-F7
(it compiles Link will fail...which is expected)
==============================================================================

--------------------Configuration: bug - Win32 Debug--------------------
Compiling...
bug.cpp
C:\Temp\bug.cpp(53) : fatal error C1001: INTERNAL COMPILER ERROR
  (compiler file 'msc1.cpp', line 1188)
    Please choose the Technical Support command on the Visual C++
    Help menu, or open the Technical Support help file for more information
Error executing cl.exe.

bug.exe - 1 error(s), 0 warning(s)

=========================================================
// bug.cpp
// CPA 15-May-1997
// Reproducer to show ICE in VC++ 5.0 Intel/Alpha

#define MFCUT_EXPORT
#include "afxcoll.h"

class MFCUT_EXPORT suObArray : public CObArray
{
	public:
		
		int addUnique( CObject* );
		void deleteAll( );
		int find( CObject* ); // -1 return means its not there
		int remove( CObject* , BOOL leaveBlank = FALSE );  // -1 return
means its not there 

// File IO
		static void serializePtr (CArchive& ar, suObArray*& ptrInOut);

// Save/Restore
		DECLARE_SERIAL(suObArray)

};

class moUserUnits_c;
class moUnitsTable_c : private suObArray
{
	public:
		MFCUT_EXPORT moUnitsTable_c( BOOL makeDefault = FALSE );

		MFCUT_EXPORT moUserUnits_c* getUserUnits(CRuntimeClass*
userUnitClass ) const;
		MFCUT_EXPORT BOOL find(moUserUnits_c* unitIn) const;

		MFCUT_EXPORT void reset( const moUnitsTable_c& unitsTab );

		MFCUT_EXPORT virtual void Serialize( CArchive& ar);

		MFCUT_EXPORT void addUse( );
		MFCUT_EXPORT void removeUse( );

		suObArray::operator new;
		suObArray::operator delete;
// IO
		MFCUT_EXPORT BOOL iAddUserUnits( moUserUnits_c* userUnit );
		MFCUT_EXPORT BOOL iDelUserUnits( moUserUnits_c* userUnit );

	private:
		~moUnitsTable_c() { deleteAll(); }
		
		int		iUseCount;
		DECLARE_SERIAL( moUnitsTable_c );
};

IMPLEMENT_SERIAL ( moUnitsTable_c, suObArray, 1 )
T.RTitleUserPersonal
Name
DateLines
515.1RAIDed at MS.sdtwst.zso.dec.com::hutchinsonEliminating the need for clevernessTue May 20 1997 13:309
Thank you for the sample program.  It has been determined that your 
bug is in Microsoft's front end code.  As such, the bug has been 
RAIDed (#25382).  Microsoft's developers will have to determine the 
priority of the bug fix.  The next available vehicle for distributing 
this fix is likely to be VC++ 5.0 Service Pack 2.

Thanks,

Phil