From: Douglas Gregor Date: Mon, 30 Aug 2010 14:44:26 +0000 (+0000) Subject: Predeclare class type_info in Microsoft mode, from Francois Pichet! X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5c0ca52e40e0b9e3c2da7abba47b18e468c84060;p=clang Predeclare class type_info in Microsoft mode, from Francois Pichet! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112478 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp index 29a8bec1f6..538e6e2c64 100644 --- a/lib/Frontend/InitPreprocessor.cpp +++ b/lib/Frontend/InitPreprocessor.cpp @@ -343,6 +343,7 @@ static void InitializePredefinedMacros(const TargetInfo &TI, // FIXME: This should be temporary until we have a __pragma // solution, to avoid some errors flagged in VC++ headers. Builder.defineMacro("_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES", "0"); + Builder.append("class type_info;"); } } diff --git a/test/SemaCXX/MicrosoftExtensions.cpp b/test/SemaCXX/MicrosoftExtensions.cpp new file mode 100644 index 0000000000..c143e59fb3 --- /dev/null +++ b/test/SemaCXX/MicrosoftExtensions.cpp @@ -0,0 +1,7 @@ +// RUN: %clang_cc1 %s -fsyntax-only -verify -fms-extensions + + +// ::type_info is predeclared with forward class declartion +void f(const type_info &a); + +