Issue #6066 has been updated by Eric Hodel. =begin Yes, (ID)NULL seems odd to me too. clang supports __builtin_unreachable(): http://clang.llvm.org/docs/LanguageExtensions.html#__builtin_unreachable It looks like replacing (({return Qnil; /* NOT REACHED */})) lines with __builtin_unreachable() may improve optimizations with clang. Adding configure support to detect __builltin_unreachable() looks like it is beyond my knowledge based on the __builtin_setjmp() detection, can you help me? =end ---------------------------------------- Bug #6066: Fix "control may reach end of non-void function" warnings for clang https://bugs.ruby-lang.org/issues/6066 Author: Eric Hodel Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0dev (2012-02-23 trunk 34755) [x86_64-darwin11.3.0] =begin clang 3.1 is more picky about "control may reach end of non-void function" The attached patches contain add (({return Qnil; /* not reached */})) or the equivalent where the warnings occurred. =end -- http://bugs.ruby-lang.org/