diff --git a/ndn-cxx/name.hpp b/ndn-cxx/name.hpp
index 39513e7..2f72503 100644
--- a/ndn-cxx/name.hpp
+++ b/ndn-cxx/name.hpp
@@ -366,25 +366,6 @@
     return append(Component(str));
   }
 
-  /** @brief Append a GenericNameComponent from a TLV element.
-   *  @param value a TLV element. If its TLV-TYPE is tlv::GenericNameComponent, it is
-   *               appended as is. Otherwise, it is nested into a GenericNameComponent.
-   *  @return a reference to this name, to allow chaining.
-   *  @deprecated
-   */
-  [[deprecated]]
-  Name&
-  append(Block value)
-  {
-    if (value.type() == tlv::GenericNameComponent) {
-      m_wire.push_back(std::move(value));
-    }
-    else {
-      m_wire.push_back(Block(tlv::GenericNameComponent, std::move(value)));
-    }
-    return *this;
-  }
-
   /** @brief Append a PartialName.
    *  @param name the components to append
    *  @return a reference to this name, to allow chaining
diff --git a/tests/unit/name.t.cpp b/tests/unit/name.t.cpp
index 9195e15..45149cb 100644
--- a/tests/unit/name.t.cpp
+++ b/tests/unit/name.t.cpp
@@ -246,9 +246,7 @@
   name.append(16, v1.begin(), v1.end());
   BOOST_CHECK_EQUAL(name.wireEncode(), "0715 0804456D6964 FD61D2025033 08012E 100428F0A36B"_block);
 
-  BOOST_CHECK(!name.empty());
   name.clear();
-  BOOST_CHECK(name.empty());
   BOOST_CHECK_EQUAL(name.wireEncode(), "0700"_block);
 
   name.append(v1.begin(), v1.end());
@@ -256,15 +254,6 @@
 
   name.append("xKh");
   BOOST_CHECK_EQUAL(name.wireEncode(), "070B 080428F0A36B 0803784B68"_block);
-
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-  name.append("0100"_block);
-  BOOST_CHECK_EQUAL(name.wireEncode(), "070F 080428F0A36B 0803784B68 08020100"_block);
-
-  name.append("080109"_block);
-  BOOST_CHECK_EQUAL(name.wireEncode(), "0712 080428F0A36B 0803784B68 08020100 080109"_block);
-#pragma GCC diagnostic pop
 }
 
 BOOST_AUTO_TEST_CASE(AppendPartialName)
