1 // RUN: %clang_cc1 -std=c++14 -fsyntax-only -verify %s 2 // RUN: %clang_cc1 -std=c++20 -fsyntax-only -verify %s 3 4 // Check that we don't get any extra warning for "return" without an 5 // expression, in a function that might have been intended to return 6 // void all along. 7 auto f1() { 8 return 1; 9 return; // expected-error {{deduced as 'void' here but deduced as 'int' in earlier return statement}} 10 } 11 12 decltype(auto) f2() { 13 return 1; 14 return; // expected-error {{deduced as 'void' here but deduced as 'int' in earlier return statement}} 15 } 16 17 auto *g() { 18 return; // expected-error {{cannot deduce return type 'auto *' from omitted return expression}} 19 } 20 21 decltype(h1) h1() { // expected-error {{use of undeclared identifier 'h1'}} 22 return; 23 } 24