rb_f_throw return type
With VC 2008, -W3:
rb_f_throw is defined as:
static VALUE rb_f_throw(int argc, VALUE *argv)
But then Ruby tells VC that the method never returns (which it doesn't) via __declspec(noreturn).
This results in these two compiler warnings:
c:\development\src\ruby_trunk\vm_eval.c(1146) : warning C4646: function declared with __declspec(noreturn) has non-void return type
c:\development\src\ruby_trunk\vm_eval.c(1168) : warning C4645: function declared with __declspec(noreturn) has a return statement
I've attached a possible patch to fix this - but its likely the wrong solution and the compiler errors are preferable.