[all-commits] [llvm/llvm-project] 9c0485: [C++20] [Module] Support reachable definition init...

Chuanqi Xu via All-commits all-commits at lists.llvm.org
Tue Jun 28 21:49:57 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9c04851cf5809c80862183481f8ced0b3e9ee301
      https://github.com/llvm/llvm-project/commit/9c04851cf5809c80862183481f8ced0b3e9ee301
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2022-06-29 (Wed, 29 Jun 2022)

  Changed paths:
    M clang/include/clang/AST/DeclBase.h
    M clang/include/clang/Basic/Module.h
    M clang/include/clang/Sema/Lookup.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/Decl.cpp
    M clang/lib/Sema/SemaCXXScopeSpec.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaLookup.cpp
    M clang/lib/Sema/SemaModule.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    A clang/test/CXX/basic/basic.lookup/basic.lookup.argdep/p4-friend-in-reachable-class.cpp
    M clang/test/CXX/basic/basic.scope/basic.scope.namespace/p2.cpp
    A clang/test/CXX/module/module.context/p7.cpp
    M clang/test/CXX/module/module.import/p2.cpp
    M clang/test/CXX/module/module.interface/p2.cpp
    A clang/test/CXX/module/module.interface/p7.cpp
    A clang/test/CXX/module/module.reach/ex1.cpp
    A clang/test/CXX/module/module.reach/p2.cpp
    A clang/test/CXX/module/module.reach/p4/TransitiveImport.cpp
    A clang/test/CXX/module/module.reach/p5.cpp
    M clang/test/CXX/module/module.unit/p7/t6.cpp
    M clang/test/CXX/modules-ts/basic/basic.link/p2/other.cpp
    A clang/test/Modules/Reachability-Private.cpp
    A clang/test/Modules/Reachability-func-default-arg.cpp
    A clang/test/Modules/Reachability-func-ret.cpp
    A clang/test/Modules/Reachability-template-default-arg.cpp
    A clang/test/Modules/Reachability-template-instantiation.cpp
    A clang/test/Modules/Reachability-using-templates.cpp
    A clang/test/Modules/Reachability-using.cpp
    M clang/test/Modules/cxx20-10-1-ex2.cpp
    A clang/test/Modules/derived_class.cpp
    A clang/test/Modules/explicitly-specialized-template.cpp
    M clang/test/Modules/module-private.cpp
    A clang/test/Modules/template-function-specialization.cpp
    A clang/test/Modules/template_default_argument.cpp

  Log Message:
  -----------
  [C++20] [Module] Support reachable definition initially/partially

This patch introduces a new kind of ModuleOwnershipKind as
ReachableWhenImported. This intended the status for reachable described
at: https://eel.is/c++draft/module.reach#3.

Note that this patch is not intended to support all semantics about
reachable semantics. For example, this patch didn't implement discarded
declarations in GMF. (https://eel.is/c++draft/module.global.frag#3).

This fixes: https://bugs.llvm.org/show_bug.cgi?id=52281 and
https://godbolt.org/z/81f3ocjfW.

Reviewed By: rsmith, iains

Differential Revision: https://reviews.llvm.org/D113545




More information about the All-commits mailing list