typesafe symbols for C
Jonathan Wakely
jwakely.gcc@gmail.com
Mon Jan 31 12:29:00 GMT 2011
On 31 January 2011 09:38, Andrew Haley wrote:
> On 01/29/2011 08:51 PM, Enrico Weigelt wrote:
>>
>> * Jonathan Wakely<jwakely.gcc@gmail.com> wrote:
>>>
>>> On 3 January 2011 05:37, Enrico Weigelt wrote:
>>>>
>>>> Hi folks,
>>>>
>>>>
>>>> is it somehow possible to let the C-compiler include some type
>>>> information into symbol names (as IMHO done for C++) ?
>>>
>>> I don't think so.
>>
>> hmm. where should I start if I wanted to add that ?
>>
>>>> If not, what would have to be done for that ?
>>>
>>> Use a C++ compiler.
>>
>> hmm, maybe that's worth a try, but I doubt that all plain-C code
>> will compile fine then.
>
> It will be very close. One really good use of C++ is as C with
> type-safe linkage.
Annex C of the C++ standard lists incompatibilities between C and C++.
Among the commonly-used C features which won't work in C++ are:
Implicit conversions from integer types to enum types.
Implicit conversions from void* to other pointer types, which most
often causes problems in malloc statements:
Valid in C but not in C++:
char* buf = malloc(sz);
Valid in C and C++:
char* buf = (char*) malloc(sz);
C++ has additional keywords, so 'new' is not a valid identifier in C++
More information about the Gcc-help
mailing list