Add more test coverage to selftest::test_location_wrappers
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 23 Jan 2018 11:05:21 +0000 (11:05 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Tue, 23 Jan 2018 11:05:21 +0000 (11:05 +0000)
gcc/ChangeLog:
* tree.c (selftest::test_location_wrappers): Add more test
coverage.

From-SVN: r256979

gcc/ChangeLog
gcc/tree.c

index 3a4a97be236b914b0e3a7ea4972473dd04df51cd..a845feff6aa918627ae3bd9404198923efb22717 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-23  David Malcolm  <dmalcolm@redhat.com>
+
+       * tree.c (selftest::test_location_wrappers): Add more test
+       coverage.
+
 2018-01-23  David Malcolm  <dmalcolm@redhat.com>
 
        * sbitmap.c (selftest::test_set_range): Fix memory leaks.
index 452d3855a77fc8e4d997035dc5be8160ebc64f26..63a29f4868c4c3f051af9d2ea3bf37e21158873f 100644 (file)
@@ -14492,6 +14492,8 @@ test_location_wrappers ()
 {
   location_t loc = BUILTINS_LOCATION;
 
+  ASSERT_EQ (NULL_TREE, maybe_wrap_with_location (NULL_TREE, loc));
+
   /* Wrapping a constant.  */
   tree int_cst = build_int_cst (integer_type_node, 42);
   ASSERT_FALSE (CAN_HAVE_LOCATION_P (int_cst));
@@ -14502,6 +14504,14 @@ test_location_wrappers ()
   ASSERT_EQ (loc, EXPR_LOCATION (wrapped_int_cst));
   ASSERT_EQ (int_cst, tree_strip_any_location_wrapper (wrapped_int_cst));
 
+  /* We shouldn't add wrapper nodes for UNKNOWN_LOCATION.  */
+  ASSERT_EQ (int_cst, maybe_wrap_with_location (int_cst, UNKNOWN_LOCATION));
+
+  /* We shouldn't add wrapper nodes for nodes that CAN_HAVE_LOCATION_P.  */
+  tree cast = build1 (NOP_EXPR, char_type_node, int_cst);
+  ASSERT_TRUE (CAN_HAVE_LOCATION_P (cast));
+  ASSERT_EQ (cast, maybe_wrap_with_location (cast, loc));
+
   /* Wrapping a STRING_CST.  */
   tree string_cst = build_string (4, "foo");
   ASSERT_FALSE (CAN_HAVE_LOCATION_P (string_cst));