On 07/11/2016 08:34 AM, marxin wrote:
gcc/ChangeLog:
2016-07-12 Martin Liska <mli...@suse.cz>
* selftest-run-tests.c (selftest::run_tests): New function.
* selftest.h (sreal_c_tests): Declare.
* sreal.c (sreal_verify_basics): New function.
(verify_aritmetics): Likewise.
(sreal_verify_arithmetics): Likewise.
(verify_shifting): Likewise.
(sreal_verify_shifting): Likewise.
(void sreal_c_tests): Likewise.
gcc/testsuite/ChangeLog:
2016-07-12 Martin Liska <mli...@suse.cz>
* gcc.dg/plugin/plugin.exp: Remove sreal test.
* gcc.dg/plugin/sreal-test-1.c: Remove.
* gcc.dg/plugin/sreal_plugin.c: Remove.
---
gcc/selftest-run-tests.c | 1 +
gcc/selftest.h | 1 +
gcc/sreal.c | 112 +++++++++++++++++++
gcc/testsuite/gcc.dg/plugin/plugin.exp | 1 -
gcc/testsuite/gcc.dg/plugin/sreal-test-1.c | 8 --
gcc/testsuite/gcc.dg/plugin/sreal_plugin.c | 170 -----------------------------
6 files changed, 114 insertions(+), 179 deletions(-)
delete mode 100644 gcc/testsuite/gcc.dg/plugin/sreal-test-1.c
delete mode 100644 gcc/testsuite/gcc.dg/plugin/sreal_plugin.c
diff --git a/gcc/selftest-run-tests.c b/gcc/selftest-run-tests.c
index bddf0b2..bb004cc 100644
--- a/gcc/selftest-run-tests.c
+++ b/gcc/selftest-run-tests.c
@@ -49,6 +49,7 @@ selftest::run_tests ()
pretty_print_c_tests ();
wide_int_cc_tests ();
ggc_tests_c_tests ();
+ sreal_c_tests ();
/* Mid-level data structures. */
input_c_tests ();
diff --git a/gcc/selftest.h b/gcc/selftest.h
index 967e76b..c805386 100644
--- a/gcc/selftest.h
+++ b/gcc/selftest.h
@@ -86,6 +86,7 @@ extern void pretty_print_c_tests ();
extern void rtl_tests_c_tests ();
extern void spellcheck_c_tests ();
extern void spellcheck_tree_c_tests ();
+extern void sreal_c_tests ();
extern void tree_c_tests ();
extern void tree_cfg_c_tests ();
extern void vec_c_tests ();
diff --git a/gcc/sreal.c b/gcc/sreal.c
index a7c9c12..9c43b4e 100644
--- a/gcc/sreal.c
+++ b/gcc/sreal.c
@@ -52,6 +52,7 @@ along with GCC; see the file COPYING3. If not see
#include <math.h>
#include "coretypes.h"
#include "sreal.h"
+#include "selftest.h"
/* Print the content of struct sreal. */
@@ -233,3 +234,114 @@ sreal::operator/ (const sreal &other) const
r.normalize ();
return r;
}
+
+#if CHECKING_P
+
+namespace selftest {
+
+/* Selftests for sreals. */
+
+/* Verify basic sreal operations. */
+
+static void
+sreal_verify_basics (void)
+{
+ sreal minimum = INT_MIN;
+ sreal maximum = INT_MAX;
+
+ sreal seven = 7;
+ sreal minus_two = -2;
+ sreal minus_nine = -9;
+
+ ASSERT_EQ (INT_MIN, minimum.to_int ());
+ ASSERT_EQ (INT_MAX, maximum.to_int ());
+
+ ASSERT_FALSE (minus_two < minus_two);
+ ASSERT_FALSE (seven < seven);
+ ASSERT_TRUE (seven > minus_two);
+ ASSERT_TRUE (minus_two < seven);
+ ASSERT_TRUE (minus_two != seven);
+ ASSERT_EQ (minus_two, -2);
+ ASSERT_EQ (seven, 7);
+ ASSERT_EQ ((seven << 10) >> 10, 7);
+ ASSERT_EQ (seven + minus_nine, -2);
+}
+
+/* Helper function that performs basic arithmetics and comparison
+ of given arguments A and B. */
+
+static void
+verify_aritmetics (int64_t a, int64_t b)
arithmetics rather than aritmetics?
OK with that change.
jeff