If the function is declared with a return type and the implementation does not explicitly return an expression that can be converted to that type, I'd expect that to cause a compilation error.
One would certainly hope so, but, sadly, that isn't necessarily the case. A function declared to return an int, for instance, that doesn't have a return statement still compiles, but, of course, doesn't actually return anything but garbage.