[llvm-commits] [test-suite] r139730 - in /test-suite/trunk/SingleSource/UnitTests/EH: ./ Makefile rethrow-1.cpp rethrow-1.reference_output rethrow-2.cpp rethrow-2.reference_output simple-1.cpp simple-1.reference_output simple-2.cpp simple-2.reference_output
Bill Wendling
isanbard at gmail.com
Wed Sep 14 13:46:19 PDT 2011
Author: void
Date: Wed Sep 14 15:46:19 2011
New Revision: 139730
URL: http://llvm.org/viewvc/llvm-project?rev=139730&view=rev
Log:
Add some simple throw and rethrow exception handling tests.
Added:
test-suite/trunk/SingleSource/UnitTests/EH/
test-suite/trunk/SingleSource/UnitTests/EH/Makefile
test-suite/trunk/SingleSource/UnitTests/EH/rethrow-1.cpp
test-suite/trunk/SingleSource/UnitTests/EH/rethrow-1.reference_output
test-suite/trunk/SingleSource/UnitTests/EH/rethrow-2.cpp
test-suite/trunk/SingleSource/UnitTests/EH/rethrow-2.reference_output
test-suite/trunk/SingleSource/UnitTests/EH/simple-1.cpp
test-suite/trunk/SingleSource/UnitTests/EH/simple-1.reference_output
test-suite/trunk/SingleSource/UnitTests/EH/simple-2.cpp
test-suite/trunk/SingleSource/UnitTests/EH/simple-2.reference_output
Added: test-suite/trunk/SingleSource/UnitTests/EH/Makefile
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/EH/Makefile?rev=139730&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/EH/Makefile (added)
+++ test-suite/trunk/SingleSource/UnitTests/EH/Makefile Wed Sep 14 15:46:19 2011
@@ -0,0 +1,7 @@
+LEVEL = ../../..
+REQUIRES_EH_SUPPORT = 1
+
+include $(LEVEL)/Makefile.config
+
+LDFLAGS += -lstdc++
+include $(LEVEL)/SingleSource/Makefile.singlesrc
Added: test-suite/trunk/SingleSource/UnitTests/EH/rethrow-1.cpp
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/EH/rethrow-1.cpp?rev=139730&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/EH/rethrow-1.cpp (added)
+++ test-suite/trunk/SingleSource/UnitTests/EH/rethrow-1.cpp Wed Sep 14 15:46:19 2011
@@ -0,0 +1,120 @@
+#include <iostream>
+#include <string>
+
+#define DECL_ATTR_FUNC(FUNC) \
+ void FUNC() __attribute__((noinline)); \
+ void FUNC()
+
+#define DECLARE_FUNC(FUNC) \
+ DECL_ATTR_FUNC(throw_ ## FUNC)
+
+#define DECLARE_RETHROW_FUNC(TYPE) \
+ DECL_ATTR_FUNC(rethrow_ ## TYPE) { \
+ try { \
+ throw_ ## TYPE (); \
+ } catch (TYPE e) { \
+ std::cout << "Rethrowing: " << e << "\n"; \
+ throw; \
+ } \
+ }
+
+DECLARE_FUNC(char) {
+ char c = 'a';
+ std::cout << "Throwing char: " << c << "\n";
+ throw c;
+}
+
+DECLARE_RETHROW_FUNC(char)
+
+DECLARE_FUNC(int) {
+ int i = 37;
+ std::cout << "Throwing int: " << i << "\n";
+ throw i;
+}
+
+DECLARE_RETHROW_FUNC(int)
+
+DECLARE_FUNC(float) {
+ float f = 37.927;
+ std::cout << "Throwing float: " << f << "\n";
+ throw f;
+}
+
+DECLARE_RETHROW_FUNC(float)
+
+DECLARE_FUNC(double) {
+ double d = 37.927;
+ std::cout << "Throwing double: " << d << "\n";
+ throw d;
+}
+
+DECLARE_RETHROW_FUNC(double)
+
+DECLARE_FUNC(string) {
+ std::string s = "hello world";
+ std::cout << "Throwing std::string: " << s << "\n";
+ throw s;
+}
+
+DECL_ATTR_FUNC(rethrow_string) {
+ try {
+ throw_string();
+ } catch (const std::string &s) {
+ std::cout << "Rethrowing: " << s << "\n";
+ throw;
+ }
+}
+
+struct A {};
+
+DECLARE_FUNC(A) {
+ std::cout << "Throwing A\n";
+ throw A();
+}
+
+DECL_ATTR_FUNC(rethrow_A) {
+ try {
+ throw_A();
+ } catch (const A &) {
+ std::cout << "Rethrowing A\n";
+ throw;
+ }
+}
+
+int main() {
+ try {
+ rethrow_char();
+ } catch (char e) {
+ std::cout << "Caught char: " << e << "\n";
+ }
+
+ try {
+ rethrow_int();
+ } catch (int e) {
+ std::cout << "Caught int: " << e << "\n";
+ }
+
+ try {
+ rethrow_float();
+ } catch (float e) {
+ std::cout << "Caught float: " << e << "\n";
+ }
+
+ try {
+ rethrow_double();
+ } catch (double e) {
+ std::cout << "Caught double: " << e << "\n";
+ }
+
+ try {
+ rethrow_string();
+ } catch (const std::string &e) {
+ std::cout << "Caught std::string: " << e << "\n";
+ }
+
+ try {
+ rethrow_A();
+ } catch (const A &) {
+ std::cout << "Caught A\n";
+ }
+}
Added: test-suite/trunk/SingleSource/UnitTests/EH/rethrow-1.reference_output
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/EH/rethrow-1.reference_output?rev=139730&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/EH/rethrow-1.reference_output (added)
+++ test-suite/trunk/SingleSource/UnitTests/EH/rethrow-1.reference_output Wed Sep 14 15:46:19 2011
@@ -0,0 +1,19 @@
+Throwing char: a
+Rethrowing: a
+Caught char: a
+Throwing int: 37
+Rethrowing: 37
+Caught int: 37
+Throwing float: 37.927
+Rethrowing: 37.927
+Caught float: 37.927
+Throwing double: 37.927
+Rethrowing: 37.927
+Caught double: 37.927
+Throwing std::string: hello world
+Rethrowing: hello world
+Caught std::string: hello world
+Throwing A
+Rethrowing A
+Caught A
+exit 0
Added: test-suite/trunk/SingleSource/UnitTests/EH/rethrow-2.cpp
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/EH/rethrow-2.cpp?rev=139730&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/EH/rethrow-2.cpp (added)
+++ test-suite/trunk/SingleSource/UnitTests/EH/rethrow-2.cpp Wed Sep 14 15:46:19 2011
@@ -0,0 +1,120 @@
+#include <iostream>
+#include <string>
+
+#define DECL_ATTR_FUNC(FUNC) \
+ void FUNC() __attribute__((noinline)); \
+ void FUNC()
+
+#define DECLARE_FUNC(FUNC) \
+ DECL_ATTR_FUNC(throw_ ## FUNC)
+
+#define DECLARE_RETHROW_FUNC(TYPE) \
+ DECL_ATTR_FUNC(rethrow_ ## TYPE) { \
+ try { \
+ throw_ ## TYPE (); \
+ } catch (TYPE e) { \
+ std::cout << "Rethrowing: " << e << "\n"; \
+ throw; \
+ } \
+ }
+
+DECLARE_FUNC(char) {
+ char c = 'a';
+ std::cout << "Throwing char: " << c << "\n";
+ throw c;
+}
+
+DECLARE_RETHROW_FUNC(char)
+
+DECLARE_FUNC(int) {
+ int i = 37;
+ std::cout << "Throwing int: " << i << "\n";
+ throw i;
+}
+
+DECLARE_RETHROW_FUNC(int)
+
+DECLARE_FUNC(float) {
+ float f = 37.927;
+ std::cout << "Throwing float: " << f << "\n";
+ throw f;
+}
+
+DECLARE_RETHROW_FUNC(float)
+
+DECLARE_FUNC(double) {
+ double d = 37.927;
+ std::cout << "Throwing double: " << d << "\n";
+ throw d;
+}
+
+DECLARE_RETHROW_FUNC(double)
+
+DECLARE_FUNC(string) {
+ std::string s = "hello world";
+ std::cout << "Throwing std::string: " << s << "\n";
+ throw s;
+}
+
+DECL_ATTR_FUNC(rethrow_string) {
+ try {
+ throw_string();
+ } catch (const std::string &s) {
+ std::cout << "Rethrowing: " << s << "\n";
+ throw;
+ }
+}
+
+struct A {};
+
+DECLARE_FUNC(A) {
+ std::cout << "Throwing A\n";
+ throw A();
+}
+
+DECL_ATTR_FUNC(rethrow_A) {
+ try {
+ throw_A();
+ } catch (const A &) {
+ std::cout << "Rethrowing A\n";
+ throw;
+ }
+}
+
+int main() {
+ try {
+ rethrow_char();
+ } catch (char e) {
+ std::cout << "Caught char: " << e << "\n";
+ }
+
+ try {
+ rethrow_int();
+ } catch (int e) {
+ std::cout << "Caught int: " << e << "\n";
+ }
+
+ try {
+ rethrow_float();
+ } catch (float e) {
+ std::cout << "Caught float: " << e << "\n";
+ }
+
+ try {
+ rethrow_double();
+ } catch (double e) {
+ std::cout << "Caught double: " << e << "\n";
+ }
+
+ try {
+ rethrow_string();
+ } catch (const std::string &e) {
+ std::cout << "Caught std::string: " << e << "\n";
+ }
+
+ try {
+ rethrow_A();
+ } catch (const A &) {
+ std::cout << "Caught A\n";
+ }
+}
Added: test-suite/trunk/SingleSource/UnitTests/EH/rethrow-2.reference_output
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/EH/rethrow-2.reference_output?rev=139730&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/EH/rethrow-2.reference_output (added)
+++ test-suite/trunk/SingleSource/UnitTests/EH/rethrow-2.reference_output Wed Sep 14 15:46:19 2011
@@ -0,0 +1,19 @@
+Throwing char: a
+Rethrowing: a
+Caught char: a
+Throwing int: 37
+Rethrowing: 37
+Caught int: 37
+Throwing float: 37.927
+Rethrowing: 37.927
+Caught float: 37.927
+Throwing double: 37.927
+Rethrowing: 37.927
+Caught double: 37.927
+Throwing std::string: hello world
+Rethrowing: hello world
+Caught std::string: hello world
+Throwing A
+Rethrowing A
+Caught A
+exit 0
Added: test-suite/trunk/SingleSource/UnitTests/EH/simple-1.cpp
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/EH/simple-1.cpp?rev=139730&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/EH/simple-1.cpp (added)
+++ test-suite/trunk/SingleSource/UnitTests/EH/simple-1.cpp Wed Sep 14 15:46:19 2011
@@ -0,0 +1,81 @@
+#include <iostream>
+#include <string>
+
+#define DECLARE_FUNC(FUNC) \
+ void throw_ ## FUNC() __attribute__((noinline)); \
+ void throw_ ## FUNC()
+
+DECLARE_FUNC(char) {
+ char c = 'a';
+ std::cout << "Throwing char: " << c << "\n";
+ throw c;
+}
+
+DECLARE_FUNC(int) {
+ int i = 37;
+ std::cout << "Throwing int: " << i << "\n";
+ throw i;
+}
+
+DECLARE_FUNC(float) {
+ float f = 37.927;
+ std::cout << "Throwing float: " << f << "\n";
+ throw f;
+}
+
+DECLARE_FUNC(double) {
+ double d = 37.927;
+ std::cout << "Throwing double: " << d << "\n";
+ throw d;
+}
+
+DECLARE_FUNC(string) {
+ std::string s = "hello world";
+ std::cout << "Throwing std::string: " << s << "\n";
+ throw s;
+}
+
+struct A {};
+
+DECLARE_FUNC(A) {
+ std::cout << "Throwing A\n";
+ throw A();
+}
+
+int main() {
+ try {
+ throw_char();
+ } catch (char e) {
+ std::cout << "Caught char: " << e << "\n";
+ }
+
+ try {
+ throw_int();
+ } catch (int e) {
+ std::cout << "Caught int: " << e << "\n";
+ }
+
+ try {
+ throw_float();
+ } catch (float e) {
+ std::cout << "Caught float: " << e << "\n";
+ }
+
+ try {
+ throw_double();
+ } catch (double e) {
+ std::cout << "Caught double: " << e << "\n";
+ }
+
+ try {
+ throw_string();
+ } catch (const std::string &e) {
+ std::cout << "Caught std::string: " << e << "\n";
+ }
+
+ try {
+ throw_A();
+ } catch (const A &e) {
+ std::cout << "Caught A\n";
+ }
+}
Added: test-suite/trunk/SingleSource/UnitTests/EH/simple-1.reference_output
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/EH/simple-1.reference_output?rev=139730&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/EH/simple-1.reference_output (added)
+++ test-suite/trunk/SingleSource/UnitTests/EH/simple-1.reference_output Wed Sep 14 15:46:19 2011
@@ -0,0 +1,13 @@
+Throwing char: a
+Caught char: a
+Throwing int: 37
+Caught int: 37
+Throwing float: 37.927
+Caught float: 37.927
+Throwing double: 37.927
+Caught double: 37.927
+Throwing std::string: hello world
+Caught std::string: hello world
+Throwing A
+Caught A
+exit 0
Added: test-suite/trunk/SingleSource/UnitTests/EH/simple-2.cpp
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/EH/simple-2.cpp?rev=139730&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/EH/simple-2.cpp (added)
+++ test-suite/trunk/SingleSource/UnitTests/EH/simple-2.cpp Wed Sep 14 15:46:19 2011
@@ -0,0 +1,81 @@
+#include <iostream>
+#include <string>
+
+#define DECLARE_FUNC(FUNC) \
+ void throw_ ## FUNC() __attribute__((always_inline)); \
+ void throw_ ## FUNC()
+
+DECLARE_FUNC(char) {
+ char c = 'a';
+ std::cout << "Throwing char: " << c << "\n";
+ throw c;
+}
+
+DECLARE_FUNC(int) {
+ int i = 37;
+ std::cout << "Throwing int: " << i << "\n";
+ throw i;
+}
+
+DECLARE_FUNC(float) {
+ float f = 37.927;
+ std::cout << "Throwing float: " << f << "\n";
+ throw f;
+}
+
+DECLARE_FUNC(double) {
+ double d = 37.927;
+ std::cout << "Throwing double: " << d << "\n";
+ throw d;
+}
+
+DECLARE_FUNC(string) {
+ std::string s = "hello world";
+ std::cout << "Throwing std::string: " << s << "\n";
+ throw s;
+}
+
+struct A {};
+
+DECLARE_FUNC(A) {
+ std::cout << "Throwing A\n";
+ throw A();
+}
+
+int main() {
+ try {
+ throw_char();
+ } catch (char e) {
+ std::cout << "Caught char: " << e << "\n";
+ }
+
+ try {
+ throw_int();
+ } catch (int e) {
+ std::cout << "Caught int: " << e << "\n";
+ }
+
+ try {
+ throw_float();
+ } catch (float e) {
+ std::cout << "Caught float: " << e << "\n";
+ }
+
+ try {
+ throw_double();
+ } catch (double e) {
+ std::cout << "Caught double: " << e << "\n";
+ }
+
+ try {
+ throw_string();
+ } catch (const std::string &e) {
+ std::cout << "Caught std::string: " << e << "\n";
+ }
+
+ try {
+ throw_A();
+ } catch (const A &e) {
+ std::cout << "Caught A\n";
+ }
+}
Added: test-suite/trunk/SingleSource/UnitTests/EH/simple-2.reference_output
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/EH/simple-2.reference_output?rev=139730&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/EH/simple-2.reference_output (added)
+++ test-suite/trunk/SingleSource/UnitTests/EH/simple-2.reference_output Wed Sep 14 15:46:19 2011
@@ -0,0 +1,13 @@
+Throwing char: a
+Caught char: a
+Throwing int: 37
+Caught int: 37
+Throwing float: 37.927
+Caught float: 37.927
+Throwing double: 37.927
+Caught double: 37.927
+Throwing std::string: hello world
+Caught std::string: hello world
+Throwing A
+Caught A
+exit 0
More information about the llvm-commits
mailing list