[clang] 58c305f - Revert "Teach AttachPreviousImpl to inherit MSInheritanceAttr attribute"

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 21 09:42:51 PDT 2020


Author: Aaron Ballman
Date: 2020-08-21T12:42:10-04:00
New Revision: 58c305f466d1f78adb10e7295b9bc9fc192a6e09

URL: https://github.com/llvm/llvm-project/commit/58c305f466d1f78adb10e7295b9bc9fc192a6e09
DIFF: https://github.com/llvm/llvm-project/commit/58c305f466d1f78adb10e7295b9bc9fc192a6e09.diff

LOG: Revert "Teach AttachPreviousImpl to inherit MSInheritanceAttr attribute"

This reverts commit 7a527f17776be78ec44b88e82b39afb65fc148e4.

It caused some buildbot failures:
http://lab.llvm.org:8011/builders/clang-ppc64le-linux-multistage/builds/13600
http://lab.llvm.org:8011/builders/clang-cmake-armv7-quick/builds/20294

Added: 
    

Modified: 
    clang/lib/Serialization/ASTReaderDecl.cpp

Removed: 
    clang/test/Modules/Inputs/inherit-attribute/a.h
    clang/test/Modules/Inputs/inherit-attribute/b.h
    clang/test/Modules/Inputs/inherit-attribute/c.h
    clang/test/Modules/Inputs/inherit-attribute/module.modulemap
    clang/test/Modules/inherit-attribute.cpp


################################################################################
diff  --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp
index c7a009d1e50d..d76182847e9d 100644
--- a/clang/lib/Serialization/ASTReaderDecl.cpp
+++ b/clang/lib/Serialization/ASTReaderDecl.cpp
@@ -281,9 +281,6 @@ namespace clang {
     static Decl *getMostRecentDeclImpl(...);
     static Decl *getMostRecentDecl(Decl *D);
 
-    static void mergeInheritableAttributes(ASTReader &Reader, Decl *D,
-                                           Decl *Previous);
-
     template <typename DeclT>
     static void attachPreviousDeclImpl(ASTReader &Reader,
                                        Redeclarable<DeclT> *D, Decl *Previous,
@@ -3514,19 +3511,6 @@ Decl *ASTReader::getMostRecentExistingDecl(Decl *D) {
   return ASTDeclReader::getMostRecentDecl(D->getCanonicalDecl());
 }
 
-void ASTDeclReader::mergeInheritableAttributes(ASTReader &Reader, Decl *D,
-                                               Decl *Previous) {
-  InheritableAttr *NewAttr = nullptr;
-  ASTContext &Context = Reader.getContext();
-  const auto *IA = Previous->getAttr<MSInheritanceAttr>();
-
-  if (IA && !D->hasAttr<MSInheritanceAttr>()) {
-    NewAttr = cast<InheritableAttr>(IA->clone(Context));
-    NewAttr->setInherited(true);
-    D->addAttr(NewAttr);
-  }
-}
-
 template<typename DeclT>
 void ASTDeclReader::attachPreviousDeclImpl(ASTReader &Reader,
                                            Redeclarable<DeclT> *D,
@@ -3685,12 +3669,6 @@ void ASTDeclReader::attachPreviousDecl(ASTReader &Reader, Decl *D,
   if (auto *TD = dyn_cast<TemplateDecl>(D))
     inheritDefaultTemplateArguments(Reader.getContext(),
                                     cast<TemplateDecl>(Previous), TD);
-
-  // If any of the declaration in the chain contains an Inheritable attribute,
-  // it needs to be added to all the declarations in the redeclarable chain.
-  // FIXME: Only the logic of merging MSInheritableAttr is present, it should
-  // be extended for all inheritable attributes.
-  mergeInheritableAttributes(Reader, D, Previous);
 }
 
 template<typename DeclT>

diff  --git a/clang/test/Modules/Inputs/inherit-attribute/a.h b/clang/test/Modules/Inputs/inherit-attribute/a.h
deleted file mode 100644
index 04aabe9e8c61..000000000000
--- a/clang/test/Modules/Inputs/inherit-attribute/a.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef FOO
-#define FOO
-
-class Foo {
-public:
-  void step(int v);
-  Foo();
-};
-
-#endif

diff  --git a/clang/test/Modules/Inputs/inherit-attribute/b.h b/clang/test/Modules/Inputs/inherit-attribute/b.h
deleted file mode 100644
index 9cd1f55b9d33..000000000000
--- a/clang/test/Modules/Inputs/inherit-attribute/b.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "a.h"
-
-void bar() {
-  &Foo::step;
-}

diff  --git a/clang/test/Modules/Inputs/inherit-attribute/c.h b/clang/test/Modules/Inputs/inherit-attribute/c.h
deleted file mode 100644
index 2243de1baf9a..000000000000
--- a/clang/test/Modules/Inputs/inherit-attribute/c.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "a.h"

diff  --git a/clang/test/Modules/Inputs/inherit-attribute/module.modulemap b/clang/test/Modules/Inputs/inherit-attribute/module.modulemap
deleted file mode 100644
index 16481e2745dd..000000000000
--- a/clang/test/Modules/Inputs/inherit-attribute/module.modulemap
+++ /dev/null
@@ -1,3 +0,0 @@
-module "b" { header "b.h" }
-
-module "c" { header "c.h" }

diff  --git a/clang/test/Modules/inherit-attribute.cpp b/clang/test/Modules/inherit-attribute.cpp
deleted file mode 100644
index 34aa4670365a..000000000000
--- a/clang/test/Modules/inherit-attribute.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// RUN: rm -rf %t
-// RUN: %clang_cc1 -fmodules -triple x86_64-pc-windows-msvc-unknown -I%S\Inputs\inherit-attribute -fmodules-cache-path=%t \
-// RUN: -fimplicit-module-maps -fmodules-local-submodule-visibility %s -ast-dump-all \
-// RUN: | FileCheck %s
-
-#include "b.h"
-#include "c.h"
-
-class Foo;
-
-Foo f;
-
-// CHECK:   CXXRecordDecl {{.*}} imported in b {{.*}} Foo
-// CHECK:   MSInheritanceAttr {{[^()]*$}}
-
-// CHECK:   CXXRecordDecl {{.*}} prev {{.*}} imported in c {{.*}} Foo
-// CHECK:   MSInheritanceAttr {{.*}} Inherited {{[^()]*$}}
-
-// CHECK:   CXXRecordDecl {{.*}} <line:9:1, col:7> col:7 referenced class Foo
-// CHECK:   MSInheritanceAttr {{.*}} Inherited {{[^()]*$}}


        


More information about the cfe-commits mailing list