From 6b9a6e390fbb92c40eb9c6ac9e7abbd88dd7a767 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Thu, 3 May 2012 16:53:59 +0000 Subject: Vendor import of clang release_31 branch r155985: http://llvm.org/svn/llvm-project/cfe/branches/release_31@155985 --- test/Parser/MicrosoftExtensions.cpp | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'test/Parser/MicrosoftExtensions.cpp') diff --git a/test/Parser/MicrosoftExtensions.cpp b/test/Parser/MicrosoftExtensions.cpp index 89394c303ca8..3a1ffea453ca 100644 --- a/test/Parser/MicrosoftExtensions.cpp +++ b/test/Parser/MicrosoftExtensions.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 %s -fsyntax-only -Wno-unused-value -Wmicrosoft -verify -fms-extensions -fdelayed-template-parsing +// RUN: %clang_cc1 %s -std=c++11 -fsyntax-only -Wno-unused-value -Wmicrosoft -verify -fms-extensions -fms-compatibility -fdelayed-template-parsing /* Microsoft attribute tests */ [repeatable][source_annotation_attribute( Parameter|ReturnValue )] @@ -103,7 +103,7 @@ typedef COM_CLASS_TEMPLATE COM_TYPE_2; template class COM_CLASS_TEMPLATE_REF { }; -typedef COM_CLASS_TEMPLATE COM_TYPE_REF; +typedef COM_CLASS_TEMPLATE_REF COM_TYPE_REF; struct late_defined_uuid; template @@ -284,3 +284,28 @@ int main () { missing_template_keyword(); } + + + +namespace access_protected_PTM { + +class A { +protected: + void f(); // expected-note {{must name member using the type of the current context 'access_protected_PTM::B'}} +}; + +class B : public A{ +public: + void test_access(); + static void test_access_static(); +}; + +void B::test_access() { + &A::f; // expected-error {{'f' is a protected member of 'access_protected_PTM::A'}} +} + +void B::test_access_static() { + &A::f; +} + +} \ No newline at end of file -- cgit v1.3