From 952eddef9aff85b1e92626e89baaf7a360e2ac85 Mon Sep 17 00:00:00 2001 From: dim Date: Sun, 22 Dec 2013 00:07:40 +0000 Subject: Vendor import of clang release_34 branch r197841 (effectively, 3.4 RC3): https://llvm.org/svn/llvm-project/cfe/branches/release_34@197841 --- test/CodeGenCXX/predefined-expr.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'test/CodeGenCXX/predefined-expr.cpp') diff --git a/test/CodeGenCXX/predefined-expr.cpp b/test/CodeGenCXX/predefined-expr.cpp index 24ead8f..9062ee0 100644 --- a/test/CodeGenCXX/predefined-expr.cpp +++ b/test/CodeGenCXX/predefined-expr.cpp @@ -9,6 +9,8 @@ // CHECK: private unnamed_addr constant [57 x i8] c"void NonTypeTemplateParam<42>::size() const [Count = 42]\00" // CHECK: private unnamed_addr constant [122 x i8] c"static void ClassWithTemplateTemplateParam::staticMember() [T = char, Param = NS::ClassTemplate]\00" // CHECK: private unnamed_addr constant [106 x i8] c"void OuterClass::MiddleClass::InnerClass::memberFunction(T, U) const [T = int *, U = float]\00" +// CHECK: private unnamed_addr constant [51 x i8] c"void functionTemplateWithCapturedStmt(T) [T = int]\00" +// CHECK: private unnamed_addr constant [76 x i8] c"auto functionTemplateWithLambda(int)::::operator()() const\00" // CHECK: private unnamed_addr constant [65 x i8] c"void functionTemplateWithUnnamedTemplateParameter(T) [T = float]\00" // CHECK: private unnamed_addr constant [60 x i8] c"void functionTemplateExplicitSpecialization(T) [T = double]\00" @@ -376,6 +378,23 @@ void functionTemplateWithUnnamedTemplateParameter(T t) } template +void functionTemplateWithLambda(T t) +{ + []() { + printf("__PRETTY_FUNCTION__ %s\n\n", __PRETTY_FUNCTION__); + } (); +} + +template +void functionTemplateWithCapturedStmt(T t) +{ + #pragma clang __debug captured + { + printf("__PRETTY_FUNCTION__ %s\n\n", __PRETTY_FUNCTION__); + } +} + +template class OuterClass { public: @@ -500,6 +519,9 @@ int main() { functionTemplateExplicitSpecialization(0.0); functionTemplateWithUnnamedTemplateParameter(0.0f); + functionTemplateWithLambda(0); + functionTemplateWithCapturedStmt(0); + OuterClass::MiddleClass::InnerClass omi; omi.memberFunction(0, 0.0f); -- cgit v1.1