パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

あなたの遭遇したバグや不具合の「イケてない回避策」は?」記事へのコメント

  • by Anonymous Coward

    脱線気味ですが。
    某B社のPascal言語環境で、コンパイルしたアプリが処理が正常に行われなかったり、オーバーフローしたりしたことが・・・。
    diffでソースの差分をみても特に異常があるわけでもない。
    そして、いろいろ試行錯誤しているうちに、動作とはまったく関係ない「はず」のコメント行を削ってみたら正常に動作したことが。
    あの会社の開発環境は信じられなくなりました。

    • by T.Sawamoto (4142) on 2009年05月28日 1時57分 (#1574588)

      他の方も仰っている通り、某B社のT**** Pascalでは、中括弧でくくるタイプのコメント中に日本語は御法度でした。
      Pascalのコメントには

      { comment }

      (* comment *)

      の2つの形式がありますけど、前者のコメント中で第2バイトに$7D('}')が来る文字(シフトJISでは全角カタカナの'マ'とか)を使用すると、コンパイラはそこでコメントが終わったものと解釈してしまいます。
      そこから後のコメントが偶然コンパイルが通ってしまう内容だったりすると、動作に影響を与えることもありそうです。

      親コメント
      • by Anonymous Coward
        コメント+文字コードネタだと、

        // どの文字が危険だったか覚えて無いけど
        foo();

        のタイプのコメントで、コメントの末尾が2バイト目が\の文字の場合に改行がエスケープされちゃって

        // どの文字が危険だったか覚えて無いけ?■foo();

        みたいに行末が潰れつつ1行扱いにされてしまうというのが。

        その文字コードにする必要があったけど、コンパイラの方はどうしようもなさそうで、 その文字コードを正しく扱えるgrepか何かを探してきて、事前にすべての行末にスペースを追加してからコンパイルするようにmakeを書き換えたんだったか。

        もちろん、後日、"\を含む文字が入ってる文字列"がコード中に出てきて破綻しましたが。

人生unstable -- あるハッカー

処理中...