昨日の話にリプライが入っていますねぇ。
その内容から察するに、問題のコードはこういうところですな。
fns.c:383
/* ARGSUSED */
Lisp_Object
concat2 (s1, s2)
Lisp_Object s1, s2;
#ifdef NO_ARG_ARRAY
Lisp_Object args[2];
args[0] = s1;
args[1] = s2;
return concat (2, args, Lisp_String, 0);
#else
return concat (2, &s1, Lisp_String, 0);
#endif /* NO_ARG_ARRAY */
NO_ARG_ARRAY が定義されていない場合、(下から3行目の) "&s1" で引数のアドレスをそのまま渡す、ということをするようだ。だから、-O3 でコンパイルしたい場合、NO_ARG_ARRAY を定義する方が分かりやすいよ、という内容のリプライが入っていた。