================
@@ -5050,6 +5050,59 @@ TEST_P(ImportFriendClasses, RecordVarTemplateDecl) {
EXPECT_EQ(ToTUX, ToX);
}
+TEST_P(ASTImporterOptionSpecificTestBase, VarTemplateDeclConflict) {
+ getToTuDecl(
+ R"(
+ template <class U>
+ constexpr int X = 1;
+ )",
+ Lang_CXX14);
+
+ Decl *FromTU = getTuDecl(
+ R"(
+ template <class U>
+ constexpr int X = 2;
+ )",
+ Lang_CXX14, "input1.cc");
+ auto *FromX = FirstDeclMatcher<VarTemplateDecl>().match(
+ FromTU, varTemplateDecl(hasName("X")));
+ auto *ToX = Import(FromX, Lang_CXX11);
+ // FIXME: This import should fail.
+ EXPECT_TRUE(ToX);
+}
+
+TEST_P(ASTImporterOptionSpecificTestBase, VarTemplateStaticDefinition) {
+ Decl *ToTU = getToTuDecl(
+ R"(
+ struct A {
+ template <class U, class V>
+ static int X;
+ };
+ )",
+ Lang_CXX14);
+ auto *ToX = FirstDeclMatcher<VarTemplateDecl>().match(
+ ToTU, varTemplateDecl(hasName("X")));
+ ASSERT_FALSE(ToX->isThisDeclarationADefinition());
+
+ Decl *FromTU = getTuDecl(
+ R"(
+ struct A {
+ template <class U>
----------------
balazske wrote:
Yes, this code was incorrect. It is still a bug that the test did not fail, my
next planned fixes should improve this situation.
https://github.com/llvm/llvm-project/pull/72841
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits