とうたつふのう‐コード〔タウタツフノウ‐〕【到達不能コード】
読み方:とうたつふのうこーど
到達不能コード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/11/17 01:52 UTC 版)
到達不能コード(とうたつふのうコード、英: unreachable code)は、コンピュータ・プログラムの一部として存在するが、決して実行されないコードのことである。たとえば機械語プログラムであれば、プログラムカウンタ(インストラクションポインタ)が、そのアドレスに到達することは決してない(到達不能である)。
注釈
- ^ この例の場合では、メモリマップドI/Oの場合は意味が異なってくるが、一般にそういう場合は
volatile
を付けるなど、特別扱いが必要である。 - ^ たとえば「この部分を実行しているときには、この変数の値は絶対に負ではない」といったような情報を使う。
- ^ 典型的には、if文のthen節とelse節の両方にreturn文があるのに、そのif文の後にも何らかの別の文が続いている、というような、意味的な分析を必要とせずに構文上で明らかなものについて。
- ^ CおよびC++の言語仕様上は、到達不能コード自体は合法だが、Microsoft Visual C++は到達不能コードに対してC4702の警告を出す[1]。Clangはデフォルトでは到達不能コードに対して警告を出さないが、
-Wunreachable-code
オプションや-Wunreachable-code-aggressive
オプションを有効にすることで警告を出すようになる(これらは-Weverything
オプションに含まれる)[2]。
出典
- ^ Compiler Warning (level 4) C4702 | Microsoft Learn
- ^ Diagnostic flags in Clang — Clang git documentation
- ^ a b Adam Langley (2014年). “Apple's SSL/TLS bug”. 2015年3月15日閲覧。
- ^ Arie van Deursen (2014年). “Learning from Apple’s #gotofail Security Bug”. 2015年3月15日閲覧。
- ^ “sslKeyExchange.c - Source code for support for key exchange and server key exchange”. 2015年3月15日閲覧。
- 1 到達不能コードとは
- 2 到達不能コードの概要
- 3 脆弱性と到達不能性
- 4 関連項目
- 到達不能コードのページへのリンク