3

私が持っている場合tmp.c

char constantFOO[0x12];
char constantBAR[0x34];

gcc -c tmp.c -o tmp.o && nm tmp.oショーを見ます

0000000000000034 C constantBAR
0000000000000012 C constantFOO

しかし、 でコンパイルすると-flto -ffat-lto-objectsnmシンボル値にゼロが出力されます。

00000000 C constantBAR
00000000 C constantFOO

両方のファイルの 16 進ダンプで値34と値を取得できます。12.o

私の質問は

  1. nmLTO ファット ファイルでの の動作は期待どおりですか? 期待していない入力を与えているだけで、ガベージを出力していますか?

  2. 元の出力 (初期化されていない配列の長さに一致するシンボル値) を説明するものは何ですか? この質問は配列の問題には役立たないように見えましたが、誤解していたのかもしれません。

4

1 に答える 1