From: Mikael Djurfeldt <djurfeldt@nada.kth.se>
Cc: guile-devel@gnu.org
Subject: Re: Compiling 1.7.0 with gcc-3.3
Date: Thu, 22 May 2003 11:37:27 +0200 [thread overview]
Message-ID: <xy7d6ibiap4.fsf@nada.kth.se> (raw)
In-Reply-To: <3EC9045D.E8712F62@veritas.com> (Bruce Korb's message of "Mon, 19 May 2003 09:20:45 -0700")
Bruce Korb <bkorb@veritas.com> writes:
> Mikael Djurfeldt wrote:
>>
>> I've tried to compile CVS HEAD (1.7.0) with gcc-3.3.
>>
>> Of course, I'd like this to work with the default
>> --enable-error-on-warning. However, there are two problematic
>> instances. One is the use of SCM_STACKITEM. For example:
>>
>> eval.c:1965:
>> if (scm_stack_checking_enabled_p
>> && SCM_STACK_OVERFLOW_P ((SCM_STACKITEM *) &proc))
>>
>> The cast into (SCM_STACKITEM *) causes a warning that the pointer can
>> cause errors due to aliasing optimizations if it is dereferenced
>> (which it isn't, BTW). -fstrict-aliasing is turned on by -O2 in
>> gcc-3.3.
>
> Cast it through a void* cast:
Done. Thanks.
>> eval.c:1965:
>> if (scm_stack_checking_enabled_p
>> && SCM_STACK_OVERFLOW_P ((SCM_STACKITEM *) (void*) &proc))
>
>> Another problem seems more difficult:
>>
>> gcc -DHAVE_CONFIG_H -I. -I../../../guile-core-new/libguile -I.. -I.. -I../../../guile-core-new -I../../../guile-core-new/libguile-ltdl -g -O2 -Werror -Wall -Wmissing-prototypes -Wno-strict-aliasing -MT numbers.lo -MD -MP -MF .deps/numbers.Tpo -c ../../../guile-core-new/libguile/numbers.c -fPIC -DPIC -o .libs/numbers.lo
>> In file included from ../../../guile-core-new/libguile/numbers.c:4084:
>> ../../../guile-core-new/libguile/num2integral.i.c: In function `scm_num2long_long':
>> ../../../guile-core-new/libguile/num2integral.i.c:65: warning: comparison is always false due to limited range of data type
>> In file included from ../../../guile-core-new/libguile/numbers.c:4092:
>> ../../../guile-core-new/libguile/num2integral.i.c: In function `scm_num2ulong_long':
>> ../../../guile-core-new/libguile/num2integral.i.c:65: warning: comparison is always false due to limited range of data type
>>
>> I think this is a stupid warning message. In any case, you'd want to
>> be able to shut it off. I can't find any way to do that. Maybe we
>> should talk to the gcc people about this?
>
> Well, your test is: (unsigned long)(some-value) > (unsigned long)~0
> and it cannot ever be true.
Well, it's really
if (((scm_t_bits) n) > UNSIGNED_ITYPE_MAX)
scm_out_of_range (s_caller, num);
where UNSIGNED_ITYPE_MAX is different depending on which instance of
num2intergral.i.c is compiled (the file is included into numbers.c
several times, with different values of the C macros).
It's true that the conditional cannot ever be true when
UNSIGNED_ITYPE_MAX is (unsigned long)~0.
What I meant with "stupid warning message" (which is a too strong
wording) is that I want to be free to write conditionals which never
will be true. In that case, I want the compiler to silently exclude
the piece of dead code. On the other hand, other users might regard
this condition as a sign of error and want the warning message.
Ideally, one should then be able to customize whether to get the
warning or not.
In our case, we will now probably need to resort to preprocessor
conditionals, which means less power and the need to add extra
information in the form of new C preprocessor macros.
> Can I get scm_c_eval_string_from_file_line() added, please?
> All other solutions have proven intractable.
Hmm... I guess I will find a reference to your problem in some other
thread. Will go looking later.
Anyway, thanks for your input!
Best regards,
Mikael
_______________________________________________
Bug-guile mailing list
Bug-guile@gnu.org
http://mail.gnu.org/mailman/listinfo/bug-guile
prev parent reply other threads:[~2003-05-22 9:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-19 10:09 Compiling 1.7.0 with gcc-3.3 Mikael Djurfeldt
2003-05-19 14:26 ` Rob Browning
2003-05-19 17:05 ` Bruce Korb
2003-05-22 10:26 ` Mikael Djurfeldt
2003-05-19 16:20 ` Bruce Korb
2003-05-22 9:37 ` Mikael Djurfeldt [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xy7d6ibiap4.fsf@nada.kth.se \
--to=djurfeldt@nada.kth.se \
--cc=guile-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).