Есть ли в коде ошибки?

void foo(int a) 
{ 
  int& ra = a; 
  return ra; 
} 
 
int main(int argc, char* argv[]) 
{ 
  int a = foo(3); 
 
  return 0; 
} 
Ошибка времени выполнения
Undefined Behavior
В коде ошибок нет
Ошибка компиляции