[PATCH] D136886: [ASTImporter] RFC: Correct importer to not duplicate sugared types
Vince Bridgers via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 27 15:06:38 PDT 2022
vabridgers updated this revision to Diff 471303.
vabridgers added a comment.
remove commented line
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D136886/new/
https://reviews.llvm.org/D136886
Files:
clang/lib/AST/ASTImporter.cpp
clang/unittests/AST/ASTImporterTest.cpp
Index: clang/unittests/AST/ASTImporterTest.cpp
===================================================================
--- clang/unittests/AST/ASTImporterTest.cpp
+++ clang/unittests/AST/ASTImporterTest.cpp
@@ -8075,6 +8075,36 @@
EXPECT_FALSE(SharedStatePtr->isNewDecl(ToBar));
}
+TEST_P(ASTImporterOptionSpecificTestBase, isSugaredImport) {
+ Decl *FromTU = getTuDecl(
+ R"(
+ typedef __builtin_va_list va_list;
+ void dbgout(char* fmt, ...)
+ {
+ va_list va;
+ }
+ )",
+ Lang_C99);
+ Decl *ToTU = getToTuDecl(
+ R"(
+ typedef __builtin_va_list va_list;
+ void dbgout(char* fmt, ...);
+ void maindbgout(char* str)
+ {
+ dbgout((char*)str);
+ }
+ )",
+ Lang_C99);
+ auto *FromOther = FirstDeclMatcher<FunctionDecl>().match(
+ FromTU, functionDecl(hasName("dbgout")));
+ ASSERT_TRUE(FromOther);
+
+ auto *ToOther = Import(FromOther, Lang_C99);
+ ASSERT_TRUE(ToOther);
+
+ // EXPECT_TRUE(SharedStatePtr->isSugaredImport(ToOther));
+}
+
INSTANTIATE_TEST_SUITE_P(ParameterizedTests, ASTImporterLookupTableTest,
DefaultTestValuesForRunOptions);
Index: clang/lib/AST/ASTImporter.cpp
===================================================================
--- clang/lib/AST/ASTImporter.cpp
+++ clang/lib/AST/ASTImporter.cpp
@@ -1358,7 +1358,8 @@
Expected<TypedefNameDecl *> ToDeclOrErr = import(T->getDecl());
if (!ToDeclOrErr)
return ToDeclOrErr.takeError();
- ExpectedType ToUnderlyingTypeOrErr = import(T->desugar());
+ ExpectedType ToUnderlyingTypeOrErr =
+ import(QualType(T, 0).getDesugaredType(T->getDecl()->getASTContext()));
if (!ToUnderlyingTypeOrErr)
return ToUnderlyingTypeOrErr.takeError();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D136886.471303.patch
Type: text/x-patch
Size: 1754 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20221027/f5370381/attachment.bin>
More information about the cfe-commits
mailing list