From a03be819cd52d2aceedd4decd01e7c32690331c3 Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Tue, 11 Aug 2015 19:25:13 +0000 Subject: [PATCH] [MSVC Compatibility] Classify ext_ms_cast_fn_obj as DefaultError This non-conforming extension was introduced to make it possible for us to correctly compile in VS 2013 and 2015. Let's limit its impact to system headers to encourage portable code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244650 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/DiagnosticSemaKinds.td | 2 +- test/SemaCXX/MicrosoftCompatibility-cxx98.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index 2afcb76874..b672394c4f 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/include/clang/Basic/DiagnosticSemaKinds.td @@ -5436,7 +5436,7 @@ def ext_cast_fn_obj : Extension< def ext_ms_cast_fn_obj : ExtWarn< "static_cast between pointer-to-function and pointer-to-object is a " "Microsoft extension">, - InGroup; + InGroup, DefaultError, SFINAEFailure; def warn_cxx98_compat_cast_fn_obj : Warning< "cast between pointer-to-function and pointer-to-object is incompatible with C++98">, InGroup, DefaultIgnore; diff --git a/test/SemaCXX/MicrosoftCompatibility-cxx98.cpp b/test/SemaCXX/MicrosoftCompatibility-cxx98.cpp index bfda837e95..626381b35a 100644 --- a/test/SemaCXX/MicrosoftCompatibility-cxx98.cpp +++ b/test/SemaCXX/MicrosoftCompatibility-cxx98.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 %s -triple i686-pc-win32 -fsyntax-only -std=c++98 -Wmicrosoft -verify -fms-compatibility -fexceptions -fcxx-exceptions +// RUN: %clang_cc1 %s -triple i686-pc-win32 -fsyntax-only -std=c++98 -Wmicrosoft -verify -fms-compatibility -fexceptions -fcxx-exceptions -Wno-error=microsoft-cast //MSVC allows forward enum declaration -- 2.40.0