From fc1637f532c5a1d7ca4ea6c24dab7e282d3b9c0d Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Fri, 23 Aug 2013 00:15:41 +0300 Subject: [PATCH] Added a test for free functions with an indirect return type. Signed-off-by: Dimitar Dobrev --- tests/Basic/Basic.cpp | 9 +++++++-- tests/Basic/Basic.h | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/Basic/Basic.cpp b/tests/Basic/Basic.cpp index 4650dc56..1744ff77 100644 --- a/tests/Basic/Basic.cpp +++ b/tests/Basic/Basic.cpp @@ -71,7 +71,7 @@ int Hello::RetEnum(Enum e) return (int)e; } -int unsafeFunction(const Bar& ret, char* testForString, void (*foo)(int)) +int unsafeFunction(const Bar& ret, char* testForString, void (*foo)(int)) { return ret.A; } @@ -87,4 +87,9 @@ Bar operator+(const Bar& b1, const Bar& b2) b.A = b1.A + b2.A; b.B = b1.B + b2.B; return b; -} +} + +Bar indirectReturn() +{ + return Bar(); +} diff --git a/tests/Basic/Basic.h b/tests/Basic/Basic.h index 4dc74cf5..7c4ae134 100644 --- a/tests/Basic/Basic.h +++ b/tests/Basic/Basic.h @@ -73,4 +73,6 @@ public: DLL_API Bar operator+(const Bar &, const Bar &); -int DLL_API unsafeFunction(const Bar& ret, char* testForString, void (*foo)(int)); +int DLL_API unsafeFunction(const Bar& ret, char* testForString, void (*foo)(int)); + +DLL_API Bar indirectReturn();