diff options
author | David Malcolm <dmalcolm@redhat.com> | 2016-07-19 16:16:18 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2016-07-19 16:16:18 +0000 |
commit | 5989388cdfa7b757a9aab117f4dcabea147050a8 (patch) | |
tree | e4ee0d5c05e2de2cefd1981773a0be5e1d7da5a5 /gcc | |
parent | 985a47b29755eb080355712e98c76daeeccba659 (diff) | |
download | gcc-5989388cdfa7b757a9aab117f4dcabea147050a8.zip gcc-5989388cdfa7b757a9aab117f4dcabea147050a8.tar.gz gcc-5989388cdfa7b757a9aab117f4dcabea147050a8.tar.bz2 |
selftest.c: gracefully handle NULL in assert_streq
gcc/ChangeLog:
* selftest.c (selftest::assert_streq): Handle NULL values of
val_actual and val_expected.
From-SVN: r238479
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/selftest.c | 14 |
2 files changed, 18 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c25a1d3..4d4cd9b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-07-19 David Malcolm <dmalcolm@redhat.com> + + * selftest.c (selftest::assert_streq): Handle NULL values of + val_actual and val_expected. + 2016-07-19 Martin Jambor <mjambor@suse.cz> PR fortran/71688 diff --git a/gcc/selftest.c b/gcc/selftest.c index ed6e517..76a4c41 100644 --- a/gcc/selftest.c +++ b/gcc/selftest.c @@ -60,13 +60,25 @@ selftest::fail_formatted (const location &loc, const char *fmt, ...) abort (); } -/* Implementation detail of ASSERT_STREQ. */ +/* Implementation detail of ASSERT_STREQ. + Compare val_expected and val_actual with strcmp. They ought + to be non-NULL; fail gracefully if either are NULL. */ void selftest::assert_streq (const location &loc, const char *desc_expected, const char *desc_actual, const char *val_expected, const char *val_actual) { + /* If val_expected is NULL, the test is buggy. Fail gracefully. */ + if (val_expected == NULL) + ::selftest::fail_formatted + (loc, "ASSERT_STREQ (%s, %s) expected=NULL", + desc_expected, desc_actual); + /* If val_actual is NULL, fail with a custom error message. */ + if (val_actual == NULL) + ::selftest::fail_formatted + (loc, "ASSERT_STREQ (%s, %s) expected=\"%s\" actual=NULL", + desc_expected, desc_actual, val_expected); if (0 == strcmp (val_expected, val_actual)) ::selftest::pass (loc, "ASSERT_STREQ"); else |