C/C++では確かに以下の関数をエラーなく書けるが(警告は出るけどね)
これにエラーを出すことにどれだけの意味があるかな?

int *fun ()
{
int a;
return &a;
}