登録番号 sdbin4-0113
登録日 1998/07/19
報告者 吉田 敦
症状 以下の関数f()について,optionaldeclのオフセットが局所変数の型を表わす“()”になっている.
int f(void) { int (*g)();
}
以下のプログラムでも同じ症状が表われる.すなわち,関数f()のbody (クラスoptionaldecl)のoffset (関連opt declの属性)が宣言子x()の引数部分“()” (クラスoptionaldecl)のoffset (関連opt declの 属性)になっている.
int f(void) { int x();
}
コメント 終りの位置は正しく“}”になっている.
状態 解決済み(1998/10/27, ver. 3.64) 登録番号 PIDB-0114
登録日 1998/07/19
報告者 吉田 敦
症状 以下のマクロ定義に対して,xに相当する展開された領域の位置情報を前処理前の位置に変換すると 長さが一文字分だけ足りない.
#define F(x) x
コメント マクロ本体に括弧を付加し“(x)”とすれば正しい変換結果になる.
状態 未解決
登録番号 SpdStr-0115
登録日 1998/09/18
報告者 福安 直樹 症状 以下のプログラム
f(){
#define X }
をc-modeで再構成すると,
int f() { }
#define X
のように,マクロの宣言が関数宣言の後に現れるため,関数f()の中でマクロXを使用していると,
コンパイルすることができない.ただし,
f(){
#define X }
の場合には,
#define X int f() { }
と正しく再構成される.マクロ宣言の前の文字数に影響されているものと思われる.
状態 解決済み(1998/09/20, ver. 2.925)
登録番号 sdblink4a-0116
登録日 1998/12/14
報告者 福安 直樹
症状 Sapid-3.141で以下のプログラムを解析することを考える.
= getopt.h ===================
struct option { int x; };
extern int f(const struct option);
==============================
= getopt.c ===================
#include "getopt.h"
==============================
= gzip.c =====================
#include "getopt.h"
struct option a;
==============================
% sdb4 getopt.c gzip.c
getopt.cにincludeされた関数f()のdeclarationとgzip.cにincludeされた関数f()のdeclaration
がsdblink4aによって名寄せされるべきであるが,名寄せされない.
一方,legacy type-spec routineを明示的に指定して
% sdb4 -sdbi -t getopt.c gzip.c で解析した場合には,名寄せされる.
出力されたISDBを比較すると,関連type isの現れる順序のみが異なる.またこの症状はsdblink4 でも起こる.
状態 未解決
登録番号 sdbin4-0117 登録日 1999/02/26 報告者 吉田 敦
症状 構造体型に関するキャストを含む初期化式を持つ宣言と,そこで宣言される識別子との間に関連が存
登録番号 sdbin4-0118
登録日 1999/05/12
報告者 福安 直樹
症状 列挙型の列挙子と同名の変数が,異なるスコープにおいて,一つの宣言文の2番目以降の宣言子とし て宣言されている場合に,解析できない.
enum { a };
f() { int x, a; } ただし,
enum { a };
f() { int a; } や
enum { a };
f() { int a, x; } は解析できる.
状態 解決済み(1999/06/04, ver. 3.313) 登録番号 PIDB-0119
登録日 1999/08/26
報告者 吉田 敦
症状 以下のように行末がバックスラッシュで,次の行に改行しかないマクロ定義が存在すると,PIDBの DEFINEinfoの展開文字列に余分な空行が1行加わる.“PIDB stream.c”では展開文字列に改行が含 まれることを仮定していないため,DEFINEinfoを正しく読み込むことができずエラーになる.なお,
このマクロの場合,正常な処理においても展開文字列の最後に改行が含まれるため,いずれにしても 改行を含む展開文字列を処理できるようにする必要がある.
#define hoge\
状態 未解決
登録番号 mkPmodel-0120
登録日 1999/08/26
報告者 吉田 敦
症状 以下のように引数部にコメントを含むマクロが定義されると,引数部の終りの閉じ括弧を見つけるこ とができず,エラーになる(“PIDB has 1 argument info but can’t find ‘)’ in source.”)