/*NOTREACHED */の効果を知らなかった件
がある。だから、コメントのかたちで /* NOTREACHED */ と書いてやると、コンパイラはこのコメントを認識し、このコメントには制御が移らないことを理解する。だからlongjmp 呼び出しをするユーザ関数の呼び出しの後には、このコメントを入れておくべきであるし、また、同様な戻らない関数 exec() などにもこれは有用なわけである。
noreturnな attributeとかなら知っていたけど、これは知らなかったな。
知らずに他のソースの真似して、それっぽく書いていたんだけど意味ねぇええ。
nobita% fxgm "cpp" "not reached" ./core/kernel/Mutex.cpp: /* not reached */ ./core/kernel/Mutex.cpp: /* not reached */ ./core/kernel/Mutex.cpp: /* not reached */ ./core/kernel/syscalls.cpp: /* not reached */ ./core/kernel/syscalls.cpp: /* not reached */ ./core/kernel/ihandlers.cpp: /* not reached */ ./core/kernel/ihandlers.cpp: /* not reached */ ./core/kernel/ihandlers.cpp: /* not reached */ ./core/kernel/Scheduler.cpp: /* not reached */ ./core/kernel/Process.cpp: /* not reached */ ./core/kernel/Process.cpp: /* not reached */ ./core/monapi/syscall.cpp: /* not reached */