Bug #1283: rb_f_throw return type
http://redmine.ruby-lang.org/issues/show/1283

Author: Charlie Savage
Status: Open, Priority: Normal
Category: core, Target version: 1.9.1
ruby -v: ruby 1.9.2dev (2009-03-12) [i386-mswin32_90]

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.


----------------------------------------
http://redmine.ruby-lang.org