-Hide


出力ファイル内のローカル・シンボル名情報を消去します。

[指定形式]

-Hide

 

-

省略時解釈

なし

[詳細説明]

-

出力ファイル内のローカル・シンボル名情報を消去します。

-

ローカル・シンボルに関する名前の情報が消去されるため,バイナリ・エディタなどでファイルを開いてもローカル・シンボル名を確認することができなくなります。
なお,生成されるファイルの動作に対する影響は一切ありません。

-

本オプションは,ローカル・シンボル名を機密扱いにしたい場合などに指定してください。

-

秘匿対象となるシンボルの種類を以下に示します。

-

Cソース:static型修飾子を指定した変数名,関数名など

-

Cソース:goto文のラベル名

-

アセンブリ・ソース:外部定義(参照)シンボル宣言していないシンボル名

なお, エントリ関数名は秘匿対象にはなりません。

[使用例]

-

出力ファイル内のローカル・シンボル名情報を消去します。

>rlink a.obj b.obj -hide

 

本オプションの機能が有効となるCソース記述の例を以下に示します。

int g1;
int g2=1;
const int g3=3;
static int s1;           //<--- static変数名は秘匿対象
static int s2=1;         //<--- static変数名は秘匿対象
static const int s3=2;   //<--- static変数名は秘匿対象
static int sub1()        //<--- static関数名は秘匿対象
{
    static int s1;       //<--- static変数名は秘匿対象
    int l1;
    
    s1 = l1; l1 = s1;
    return(l1);
}
int main()
{
    sub1();
    if (g1==1)
        goto L1;
    g2=2;
L1:                      //<--- goto文のラベル名は秘匿対象
    return(0);
}

[備考]

-

本オプションは,-form={absolute|relocate|library}オプションを指定した場合のみ有効となります。

-

外部変数アクセス最適化を行う状況で本オプションを指定する場合は,一度目のリンク時には指定せず,二度目のリンク時にのみ指定してください。

-

デバッグ情報内のシンボル名は,本オプションを指定しても削除されません。