Add testcase that uses template metaprogramming
diff --git a/lldb-eval/eval_test.cc b/lldb-eval/eval_test.cc
index c7deec0..82de2da 100644
--- a/lldb-eval/eval_test.cc
+++ b/lldb-eval/eval_test.cc
@@ -1001,6 +1001,12 @@
               IsEqual("1.10000002"));
   EXPECT_THAT(Eval("(::T_2<T_1<T_1<int> >, T_1<char> >::myint)1.1"),
               IsEqual("1.10000002"));
+
+  EXPECT_THAT(Eval("ns::is_same<bool, int>::value"), IsEqual("false"));
+  EXPECT_THAT(Eval("::ns::is_same<bool, int>::value"), IsEqual("false"));
+
+  EXPECT_THAT(Eval("ns::is_same<char, char>::value"), IsEqual("true"));
+  EXPECT_THAT(Eval("::ns::is_same<char, char>::value"), IsEqual("true"));
 }
 
 TEST_F(EvalTest, TestValueScope) {
diff --git a/testdata/fuzzer_binary.cc b/testdata/fuzzer_binary.cc
index 30a7660..9867f96 100644
--- a/testdata/fuzzer_binary.cc
+++ b/testdata/fuzzer_binary.cc
@@ -101,6 +101,19 @@
   int f1 = 10;
 };
 
+template <typename T, typename U>
+struct is_same {
+  static constexpr bool value = false;
+};
+
+template <typename T>
+struct is_same<T, T> {
+  static constexpr bool value = true;
+};
+
+template struct is_same<bool, int>;
+template struct is_same<char, char>;
+
 int main() {
   auto char_min = std::numeric_limits<char>::min();
   auto char_max = std::numeric_limits<char>::max();
diff --git a/testdata/test_binary.cc b/testdata/test_binary.cc
index 07ac9cf..7952b14 100644
--- a/testdata/test_binary.cc
+++ b/testdata/test_binary.cc
@@ -365,6 +365,19 @@
   T x;
 };
 
+template <typename T, typename U>
+struct is_same {
+  static constexpr bool value = false;
+};
+
+template <typename T>
+struct is_same<T, T> {
+  static constexpr bool value = true;
+};
+
+template struct is_same<bool, int>;
+template struct is_same<char, char>;
+
 template <typename T>
 const int T_1<T>::cx = 46;