BUG: Deleting a Struct Typedef Causes C1059, C1063, or C1001
Article ID: 133068
Article Last Modified on 7/5/2005
APPLIES TO
- Microsoft C/C++ Professional Development System 7.0
- Microsoft Visual C++ 1.0 Professional Edition
- Microsoft Visual C++ 1.5 Professional Edition
- Microsoft Visual C++ 1.51
- Microsoft Visual C++ 1.52 Professional Edition
- Microsoft Visual C++ 5.0 Learning Edition
- Microsoft Visual C++ 5.0 Learning Edition
- Microsoft Visual C++ 4.2 Enterprise Edition
- Microsoft Visual C++ 2.0 Professional Edition
- Microsoft Visual C++ 4.0 Professional Edition
- Microsoft Visual C++ 4.1 Subscription
- Microsoft Visual C++ 4.2 Professional Edition
This article was previously published under Q133068
SYMPTOMS
The sample code fragment listed at the end of this article incorrectly
deletes a typedef of a pointer to a structure, which generates the
following compiler errors:
- For Visual C++ 4.2 for Windows NT:
fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'toil.c', line 4094)
- For Visual C++ 4.1 for Windows NT:
fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'toil.c', line 4051)
- For Visual C++ 4.0 for Windows NT:
fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'toil.c', line 3128)
- For Visual C++ 2.x for Windows NT:
fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'toil.c', line 2847)
- For Visual C++ 1.0 for Windows NT:
fatal error C1001: INTERNAL COMPILER ERROR
(compiler file '@(#)main.c:1.82', line 289)
- For Visual C++ version 1.5x for Windows:
fatal error C1059: compiler is out of near heap space
- For Visual C++ version 1.0 for Windows:
fatal error C1063
- For C/C++ version 7.0:
fatal error C1001: INTERNAL COMPILER ERROR
(compiler file '2pass/getattr.c', line 346)
Contact Microsoft Product Support Services
RESOLUTION
The above error messages are misleading and do not point out the real
problem, which is that you cannot delete a typedef. Additionally, the
operand of delete must be a pointer returned by the new operator. Using
delete on a pointer to an object not allocated with new gives unpredictable
results.
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article.
Additional query words: 8.0 8.0c 8.00 8.00c 9.0 9.00 9.1 9.10 10.00 10.10 10.20
Keywords: kbbug kbcpponly kbcompiler KB133068