Author: ericwf Date: Mon Apr 17 18:28:02 2017 New Revision: 300513 URL: http://llvm.org/viewvc/llvm-project?rev=300513&view=rev Log: Rename coroutine warning when unhandled_exception() is missing
Modified: cfe/trunk/include/clang/Basic/DiagnosticGroups.td cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td cfe/trunk/test/CodeGenCoroutines/coro-alloc.cpp cfe/trunk/test/SemaCXX/coroutine-unhandled_exception-warning.cpp Modified: cfe/trunk/include/clang/Basic/DiagnosticGroups.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticGroups.td?rev=300513&r1=300512&r2=300513&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/DiagnosticGroups.td (original) +++ cfe/trunk/include/clang/Basic/DiagnosticGroups.td Mon Apr 17 18:28:02 2017 @@ -36,7 +36,9 @@ def GNUCompoundLiteralInitializer : Diag def BitFieldConstantConversion : DiagGroup<"bitfield-constant-conversion">; def BitFieldEnumConversion : DiagGroup<"bitfield-enum-conversion">; def BitFieldWidth : DiagGroup<"bitfield-width">; -def Coroutine : DiagGroup<"coroutine">; +def CoroutineMissingUnhandledException : + DiagGroup<"coroutine-missing-unhandled-exception">; +def Coroutine : DiagGroup<"coroutine", [CoroutineMissingUnhandledException]>; def ConstantConversion : DiagGroup<"constant-conversion", [ BitFieldConstantConversion ] >; def LiteralConversion : DiagGroup<"literal-conversion">; Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=300513&r1=300512&r2=300513&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original) +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Mon Apr 17 18:28:02 2017 @@ -8880,7 +8880,7 @@ def err_coroutine_promise_unhandled_exce "%0 is required to declare the member 'unhandled_exception()'">; def warn_coroutine_promise_unhandled_exception_required_with_exceptions : Warning< "%0 is required to declare the member 'unhandled_exception()' when exceptions are enabled">, - InGroup<Coroutine>; + InGroup<CoroutineMissingUnhandledException>; def err_coroutine_promise_get_return_object_on_allocation_failure : Error< "%0: 'get_return_object_on_allocation_failure()' must be a static member function">; } Modified: cfe/trunk/test/CodeGenCoroutines/coro-alloc.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCoroutines/coro-alloc.cpp?rev=300513&r1=300512&r2=300513&view=diff ============================================================================== --- cfe/trunk/test/CodeGenCoroutines/coro-alloc.cpp (original) +++ cfe/trunk/test/CodeGenCoroutines/coro-alloc.cpp Mon Apr 17 18:28:02 2017 @@ -1,4 +1,6 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fcoroutines-ts -std=c++14 -emit-llvm %s -o - -disable-llvm-passes | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fcoroutines-ts -std=c++14 \ +// RUN: -Wno-coroutine-missing-unhandled-exception -emit-llvm %s -o - -disable-llvm-passes \ +// RUN: | FileCheck %s namespace std { namespace experimental { @@ -133,7 +135,7 @@ struct promise_on_alloc_failure_tag {}; template<> struct std::experimental::coroutine_traits<int, promise_on_alloc_failure_tag> { struct promise_type { - int get_return_object() {} + int get_return_object() { return 0; } suspend_always initial_suspend() { return {}; } suspend_always final_suspend() { return {}; } void return_void() {} Modified: cfe/trunk/test/SemaCXX/coroutine-unhandled_exception-warning.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/coroutine-unhandled_exception-warning.cpp?rev=300513&r1=300512&r2=300513&view=diff ============================================================================== --- cfe/trunk/test/SemaCXX/coroutine-unhandled_exception-warning.cpp (original) +++ cfe/trunk/test/SemaCXX/coroutine-unhandled_exception-warning.cpp Mon Apr 17 18:28:02 2017 @@ -1,4 +1,11 @@ -// RUN: %clang_cc1 -triple x86_64-apple-darwin9 %s -std=c++14 -fcoroutines-ts -fsyntax-only -Wignored-qualifiers -Wno-error=return-type -verify -fblocks -Wno-unreachable-code -Wno-unused-value +// RUN: %clang_cc1 -triple x86_64-apple-darwin9 %s -std=c++14 -fcoroutines-ts \ +// RUN: -fsyntax-only -Wignored-qualifiers -Wno-error=return-type -verify \ +// RUN: -fblocks -Wno-unreachable-code -Wno-unused-value + +// RUN: %clang_cc1 -triple x86_64-apple-darwin9 %s -std=c++14 -fcoroutines-ts \ +// RUN: -fsyntax-only -Wignored-qualifiers -Wno-error=return-type -verify \ +// RUN: -fblocks -Wno-unreachable-code -Wno-unused-value \ +// RUN: -DDISABLE_WARNING -Wno-coroutine-missing-unhandled-exception #if __has_feature(cxx_exceptions) #error This test requires exceptions be disabled @@ -19,6 +26,12 @@ struct promise_void { template <typename... T> struct std::experimental::coroutine_traits<void, T...> { using promise_type = promise_void; }; +#ifndef DISABLE_WARNING void test0() { // expected-warning {{'promise_void' is required to declare the member 'unhandled_exception()' when exceptions are enabled}} co_return; } +#else +void test0() { // expected-no-diagnostics + co_return; +} +#endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits