タグ

ブックマーク / www.jpcert.or.jp (1)

  • MSC22-C. setjmp()、longjmp() の機能を安全に使用する

    MSC22-C. setjmp()、longjmp() の機能を安全に使用する setjmp() マクロは、[ISO/IEC 9899:1999] のセクション7.13.1.1 に列挙されている文脈からのみ呼び出すこと。それ以外の文脈から setjmp() を呼び出すと未定義の動作となる(未定義の動作 119 を参照)。 volatile 修飾型でないローカルオブジェクトの場合、値が setjmp() の呼び出し以降変更されていた場合、longjmp() の呼び出し後にそのオブジェクトにアクセスしてはならない。この場合、オブジェクトの値は不定と見なされ、アクセスすると未定義の動作が引き起こされる(未定義の動作 121、10 を参照)。 longjmp() 関数を使用して、実行がすでに終了している関数に制御を戻してはならない(未定義の動作 120 を参照)。 シグナルマスク、浮動小数点ステー

    MSC22-C. setjmp()、longjmp() の機能を安全に使用する
    t10471
    t10471 2016/03/03
  • 1