From 8a86f85ab1e65fb5c148d7a645197b4634a2e2fc Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Tue, 25 Jul 2023 10:55:15 +0800 Subject: [PATCH] Revert "[C++20] [Modules] Use CanonicalType for base classes" Close https://github.com/llvm/llvm-project/issues/64091 This reverts commit f82df0b285acd8a7115f0bfc55ce44474251c2d1 and add a test from https://github.com/llvm/llvm-project/issues/64091 --- clang/lib/AST/ODRHash.cpp | 2 +- clang/test/Modules/pr63595.cppm | 46 ---------- clang/test/Modules/pr64091.cpp | 194 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 195 insertions(+), 47 deletions(-) delete mode 100644 clang/test/Modules/pr63595.cppm create mode 100644 clang/test/Modules/pr64091.cpp diff --git a/clang/lib/AST/ODRHash.cpp b/clang/lib/AST/ODRHash.cpp index 40d68a3..507fb0b 100644 --- a/clang/lib/AST/ODRHash.cpp +++ b/clang/lib/AST/ODRHash.cpp @@ -593,7 +593,7 @@ void ODRHash::AddCXXRecordDecl(const CXXRecordDecl *Record) { ID.AddInteger(Record->getNumBases()); auto Bases = Record->bases(); for (const auto &Base : Bases) { - AddQualType(Base.getType().getCanonicalType()); + AddQualType(Base.getType()); ID.AddInteger(Base.isVirtual()); ID.AddInteger(Base.getAccessSpecifierAsWritten()); } diff --git a/clang/test/Modules/pr63595.cppm b/clang/test/Modules/pr63595.cppm deleted file mode 100644 index d1729da..0000000 --- a/clang/test/Modules/pr63595.cppm +++ /dev/null @@ -1,46 +0,0 @@ -// RUN: rm -rf %t -// RUN: mkdir %t -// RUN: split-file %s %t -// -// RUN: %clang_cc1 -std=c++20 -emit-module-interface -I%t %t/module1.cppm -o %t/module1.pcm -// RUN: %clang_cc1 -std=c++20 -emit-module-interface -I%t %t/module2.cppm -o %t/module2.pcm -// RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/merge.cpp -verify -fsyntax-only - -//--- header.h -namespace NS { -template -class A { -}; - -template