summaryrefslogtreecommitdiffstats
path: root/test/Sema/return.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/Sema/return.c')
-rw-r--r--test/Sema/return.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/test/Sema/return.c b/test/Sema/return.c
index 54c3406..0c2c72e 100644
--- a/test/Sema/return.c
+++ b/test/Sema/return.c
@@ -203,7 +203,7 @@ int test30() {
if (j)
longjmp(test30_j, 1);
else
-#if defined(_WIN32) || defined(_WIN64)
+#if defined(_WIN32) || defined(_WIN64) || defined(__CYGWIN__)
longjmp(test30_j, 2);
#else
_longjmp(test30_j, 1);
@@ -242,3 +242,16 @@ static inline int si_forward() {} // expected-warning{{control reaches end of no
// Test warnings on ignored qualifiers on return types.
const int ignored_c_quals(); // expected-warning{{'const' type qualifier on return type has no effect}}
const volatile int ignored_cv_quals(); // expected-warning{{'const volatile' type qualifiers on return type have no effect}}
+
+// Test that for switch(enum) that if the switch statement covers all the cases
+// that we don't consider that for -Wreturn-type.
+enum Cases { C1, C2, C3, C4 };
+int test_enum_cases(enum Cases C) {
+ switch (C) {
+ case C1: return 1;
+ case C2: return 2;
+ case C4: return 3;
+ case C3: return 4;
+ }
+} // no-warning
+
OpenPOWER on IntegriCloud