[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Intel icc finds too many errors in guile 1.8.8 to compile
From: |
Ludovic Courtès |
Subject: |
Re: Intel icc finds too many errors in guile 1.8.8 to compile |
Date: |
Sat, 03 Oct 2009 11:43:05 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
Hi,
Neil Jerram <address@hidden> writes:
> "I.Gutheil" <address@hidden> writes:
[...]
>> debug.c(62): error #188: enumerated type mixed with another type
>> scm_dynwind_begin (0);
>>
>> This could be "corrected" by declaring
>> in dynwind.h
>> SCM_API void scm_dynwind_begin (int) instead of the derived datatype
>> which could only be 1
>> and in dynwind.c
>>
>> void
>> scm_dynwind_begin (int flags)
>> ...
>
> Agreed; using enums here is just asking for trouble. I've changed it to
> #defines.
Per C99 Section 6.4.4.3, “an identifier declared as an enumeration
constant has type int”, so ICC is pedantic.
I think having disjoint ‘scm_t_wind_flags’ and ‘scm_t_dynwind_flags’
types was helpful to indicate which flags are valid for which function.
Thus, I’d rather have fixed it by adding a named enumeration constant
for 0 in each of these types.
At any rate, I think we should probably keep “typedef int
scm_t_wind_flags;” and “typedef int scm_t_dynwind_flags”.
What do you think?
Thanks,
Ludo’.