[Anthy-dev 1802] Re: 対話式デバッガ

アーカイブの一覧に戻る

YamaKen yamak****@bp*****
2005年 2月 11日 (金) 08:47:48 JST


ヤマケンです。

At Thu, 10 Feb 2005 14:40:06 -0800,
jun00****@hotpo***** wrote:
> On Thu, 10 Feb 2005 09:38:41 +0900
> YamaKen <yamak****@bp*****> wrote:
> > 検証の方ですが、特にslib.cのlreadr()で関数ブロックローカルに
> > returnをマクロとして再定義している部分がポータブルかどうか判断が
> > 付いてません。
> 
> 何が問題なのかいまいちわからないのですが、return() マクロ内で return()
> が使われてることでしたら、C99 6.10.3.4 に
> [#2] If the name of the macro being replaced is found during
>      this scan of the replacement list (not including the rest of
>      the source file's preprocessing tokens), it is not replaced.
> とあるので、大丈夫です。

そっちは問題だとは思ってませんので大丈夫です。

私が気にしてるのはreturn()マクロの有効範囲です。gcc -Eの結果から
するとlreadr()内のreturn()のみが置き換えられているようですが、伝
統的なプリプロセッサではブロックを無視してファイルの末尾まで置換
が行われると理解していたので。uimではC99の機能は使わない事にして
います。

slib.cはslib.oにコンパイルしてからリンクするのではなくuim-scm.c
で直接#include "slib.c"しているので、環境によってはそっちの
return()も置換されてしまうんじゃないかと心配しているわけです。

-------------------------------
ヤマケン yamak****@bp*****



Anthy-dev メーリングリストの案内
アーカイブの一覧に戻る