From b0a55af9be39056e9aed2eaa1deabf85d3177b5c Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Mon, 2 Jun 2008 11:09:58 +0000 Subject: [PATCH] add test for missing returns [r19920] --- parsetest/should_warn/missing_return.c | 71 ++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 parsetest/should_warn/missing_return.c diff --git a/parsetest/should_warn/missing_return.c b/parsetest/should_warn/missing_return.c new file mode 100644 index 0000000..e1c05f1 --- /dev/null +++ b/parsetest/should_warn/missing_return.c @@ -0,0 +1,71 @@ +int no_return_1(double *p) { + double d = *p; + ++d; +} + +int no_return_2(int a) { + if (a) + ++a; + else + return 1; +} + +int has_return_1(int a) { + if (a) + return a; + else + return 0; +} + +int has_return_2(int a) { + if (a) + ++a; + else + --a; + return a; + ++a; +} + +int has_return_3(int a) { + do { + return a; + } while(a); +} + +int no_return_3(int a) { + switch (a) { + case 1: return a; + case 2: return a+1; + } +} + +int has_return_4(int a) { + switch (a) { + case 1: return a; + case 2: return a+1; + default: return 0; + } +} + +int no_return_4(int a) { + goto end; + return a; +end: + ++a; +} + +int no_return_5(int a) { + if (a) + goto end; + else { + ++a; + goto end; + } + return a; +end: + ++a; +} + +int main() { + return 0; +} -- 2.20.1