• 検索結果がありません。

登録番号 sdbin3-0071

登録日 1996/10/15

報告者 吉田 敦

症状 identifierへの関連を持たないdeclaratorが存在する.

以下のプログラムを解析してみるとdeclarator“x = 3”からidentifier“x”への関連が存在しない.

extern宣言のdeclarator“x” からidentifier“x”への関連は存在する.

extern int x;

struct foo { int x; };

int x = 3;

コメント Sapid-2.499の時点で解決済み.

状態 解決済み

登録番号 sdbin3-0072

登録日 1996/10/28

報告者 福安 直樹

症状 ヘッダファイル内でenumで宣言された識別子に関するバグ.

複数ファイルでそのヘッダファイルをインクルードしている場合,sdb3で2番目以降に解析された ファイル中の式によって参照されていると,その式と識別子の間の参照関係ident ref が生成され ない.

具体的には,

= enum.h ===============================

enum { a, b, c };

========================================

= main.c ===============================

#include "enum.h"

void main() {

a;

}

========================================

= dummy.c ==============================

#include "enum.h"

void dummy() {

a;

}

========================================

を“sdb3 -o enum main.c dummy.c”によって解析すると,dummy.cの中の式“a” から参照関係 ident refが生成されない.

コメント sdb4ではファイル毎に解析を行なうためこの問題は起こらない.

コメント sdb4では問題ない.

状態 解決済み

登録番号 SAT-0073

登録日 1996/12/07

報告者 山本 晋一郎

症状 多バイトコードを用いているソースプログラムにおいて,ソースプログラム上の位置がずれる.

変更日 1996/12/07

変更者 寺澤 真人 状態 暫定的に解決済み

コメント コードがEUCの場合に対応した.EUC以外のコードには未対応である.この問題は,XSDA, SBRなど,他のTcl/Tkを用いているツールでも発生する.

登録番号 mkSpec3-0074

登録日 1997/01/22

報告者 林 和宏

症状 mkSpec3において以下のファイルの仕様書を作成すると,local変数に対する型が正常に生成されない.

int main() {

int (*f)();

int (*x)[1];

} 結果:

\localvar{f}{int ()*}

\localvar{x}{int [1]*}

コメント SpdStrを使うことによって,変数fについては解決可能と思われる.

状態 未解決

登録番号 SpdStr-0075

登録日 1997/01/22

報告者 林 和宏

症状 spdStrTesterにおいて以下のファイルを再構成すると,local変数に対する型が正常に生成されない.

int main() {

int (*x)[1];

} 結果:

int main() {

int *x[1];

}

状態 解決済み(1997/01/26, ver. 1.381)

コメント SDBは“int *x[];”と“int (*x)[];”を識別可能である.

登録番号 sdbin4-0076

登録日 1997/01/30

報告者 吉田 敦

症状 関数定義において,関数名を括弧で囲うとerror(SEGV)になる.

int (func)(int x) {

return x;

} 状態 未解決

コメント このような書き方にお目に掛かることも少ないですが,P.J.Plaugerの”The Standard C Library”

に出てくるprogramは,このような書き方をしています.これは,上記の関数定義の前に

#define func(x) (x)

と,マクロ定義しても影響を出さないためだそうです.

登録番号 sdblink4-0077

登録日 1997/03/30

報告者 福安 直樹

症状 2つ以上のファイルで同じtypedefおよびtypedefされた型による宣言が存在すると,sdbopt4の 誤った最適化によって,typedefされた型のidentifierおよびこのidentifierに張られはずの関連 がなくなる.この症状は,ver. 1.421以降で現れる.

具体的には,

=== foo.h =========

typedef int FOO;

FOO foo;

===================

=== a.c ===========

#include "foo.h"

===================

=== b.c ===========

#include "foo.h"

===================

に対して再構成すると,

===================

typedef int ;

;

===================

となる.

状態 解決済み(1997/04/14, ver. 1.450)

コメント 考えてみれば,再構成でfooが出ないのも不思議ですね.fooについて,ちょっと見てみたとこ ろでは,オブジェクトは存在しているし,関連も正しく存在しているようでした.fooが出ないのは SpdStrの問題かも.

登録番号 sdbin3-0078

登録日 1997/04/07

報告者 福安 直樹 症状 以下のプログラム

void a(int (*f)(int)) {

(*f)(0);

} を解すると,

STAR cast_expr: No type description pointer type となる.ただし,

void a(int (*f)()) {

(*f)(0);

}

と関数aの引数にfの引数の型を指定しない場合や,fが仮引数でない場合には問題が起こらない.

コメント 「4.4BSD-Liteを対象としたSapid-1.358の品質評価」で原因不明とされていた関数ポインタの バグについてもこれと同様と思われる.

コメント Sapid-2.499の時点で解決済み.

状態 解決済み

登録番号 sdbin3-0079

登録日 1997/04/11

報告者 山本 晋一郎

症状 以下のプログラムで,NULL POINTER READ が起こる.

typedef struct _fn {

void (*fn)(void);

} FN ;

void test(void) {

puts("test():");

}

void main(void) {

FN fp;

fp.fn = test;

fp.fn();

}

状態 解決済み(1997/05/23, ver. 2.8)

登録番号 mkPIDB4-0080

登録日 1997/04/12

報告者 山本 晋一郎

症状 以下のプログラムをsdb3で処理すると Error: Not find macID 26.?

sdb3: Error in /usr/local/Sapid/bin/mkPIDB4 となる.

#define A 0

#define B 100

#if 0

#define A 50

#endif

#define B 1 void foo() {

B;

}

状態 解決済み(1997/04/24, ver. 1.467)

関連したドキュメント