[all-commits] [llvm/llvm-project] 96faba: [C++20] [Modules] [NFC] Add Preprocessor methods f...

Konstantin Varlamov via All-commits all-commits at lists.llvm.org
Mon Feb 13 02:28:26 PST 2023


  Branch: refs/heads/release/16.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 96faba7ee45b401e7c3e49649e81b662916c5b1a
      https://github.com/llvm/llvm-project/commit/96faba7ee45b401e7c3e49649e81b662916c5b1a
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2023-02-13 (Mon, 13 Feb 2023)

  Changed paths:
    M clang/include/clang/Lex/Preprocessor.h
    M clang/lib/Lex/Preprocessor.cpp
    M clang/unittests/Lex/CMakeLists.txt
    A clang/unittests/Lex/ModuleDeclStateTest.cpp

  Log Message:
  -----------
  [C++20] [Modules] [NFC] Add Preprocessor methods for named modules - for ClangScanDeps (1/4)

This patch prepares the necessary interfaces in the preprocessor part
for D137527 since we need to recognize if we're in a module unit, the
module kinds and the module declaration and the module we're importing
in the preprocessor.

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


  Commit: 308a6cc3619ffff88fb0b8fc7c239a6e20b43f5f
      https://github.com/llvm/llvm-project/commit/308a6cc3619ffff88fb0b8fc7c239a6e20b43f5f
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2023-02-13 (Mon, 13 Feb 2023)

  Changed paths:
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h
    M clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h
    M clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
    M clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
    M clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
    A clang/test/ClangScanDeps/P1689.cppm
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp

  Log Message:
  -----------
  [C++20] [Modules] [ClangScanDeps] Add ClangScanDeps support for C++20 Named Modules in P1689 format (2/4)

Close https://github.com/llvm/llvm-project/issues/51792
Close https://github.com/llvm/llvm-project/issues/56770

This patch adds ClangScanDeps support for C++20 Named Modules in P1689
format. We can find the P1689 format at:
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1689r5.html.
After we land the patch, we're able to compile C++20 Named
Modules with CMake! And although P1689 is written by kitware people,
other build systems should be able to use the format to compile C++20
Named Modules too.

TODO: Support header units in P1689 Format.
TODO2: Support C++20 Modules in the full dependency format of
ClangScanDeps. We also want to support C++20 Modules and clang modules
together according to
https://discourse.llvm.org/t/how-should-we-support-dependency-scanner-for-c-20-modules/66027.
But P1689 format cares about C++20 Modules only for now. So let's focus
on C++ Modules and P1689 format. And look at the full dependency format
later.

I'll add the ReleaseNotes and Documentations after the patch get landed.

Reviewed By: jansvoboda11

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


  Commit: 697b03c0ed0113540d2cabf75e38c6386299c91e
      https://github.com/llvm/llvm-project/commit/697b03c0ed0113540d2cabf75e38c6386299c91e
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2023-02-13 (Mon, 13 Feb 2023)

  Changed paths:
    M clang/test/ClangScanDeps/P1689.cppm
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp

  Log Message:
  -----------
  [C++20] [Modules] [ClangScanDeps] Allow clang-scan-deps to without specified compilation database in P1689 (3/4)

In a private chat with @ben.boeckel , we get in consensus it would be
great for cmake if the invocation of clang-scan-deps can get rid of
compilation database. Due to the compilation database can't do very well
for the files which are not existed yet. @ben.boeckel may have more
context to add here.

This patch should be innocent for others usages.

Reviewed By: jansvoboda11

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


  Commit: 586a4bcc88e056bbf28222c517e04648be8afbc8
      https://github.com/llvm/llvm-project/commit/586a4bcc88e056bbf28222c517e04648be8afbc8
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2023-02-13 (Mon, 13 Feb 2023)

  Changed paths:
    M clang/unittests/Lex/ModuleDeclStateTest.cpp

  Log Message:
  -----------
  [Modules][Test][NFC] Fix -Wsign-compare in clang/unittests/Lex/ModuleDeclStateTest.cpp

In file included from /data/jiefu/llvm-project/clang/unittests/Lex/ModuleDeclStateTest.cpp:22:
/data/jiefu/llvm-project/third-party/unittest/googletest/include/gtest/gtest.h:1526:11: error: comparison of integers of different signs: 'const unsigned long' and 'const int' [-Werror,-Wsign-compare]
  if (lhs == rhs) {
      ~~~ ^  ~~~
/data/jiefu/llvm-project/third-party/unittest/googletest/include/gtest/gtest.h:1553:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<unsigned long, int>' requested here
    return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
           ^
/data/jiefu/llvm-project/clang/unittests/Lex/ModuleDeclStateTest.cpp:124:3: note: in instantiation of function template specialization 'testing::internal::EqHelper::Compare<unsigned long, int, nullptr>' requested here
  EXPECT_EQ(Callback->importNamedModuleNum(), 0);
  ^
/data/jiefu/llvm-project/third-party/unittest/googletest/include/gtest/gtest.h:2027:54: note: expanded from macro 'EXPECT_EQ'
  EXPECT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2)
                                                     ^
1 error generated.


  Commit: 5e0f3cd48fa640d3fa61b8b20d34e03ec4fc4831
      https://github.com/llvm/llvm-project/commit/5e0f3cd48fa640d3fa61b8b20d34e03ec4fc4831
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2023-02-13 (Mon, 13 Feb 2023)

  Changed paths:
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
    M clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
    M clang/test/ClangScanDeps/P1689.cppm
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp

  Log Message:
  -----------
  [C++20] [Modules] [ClangScanDeps] Enable to print make-style dependency file within P1689 format (4/4)

Required in https://reviews.llvm.org/D137534.

The build systems needs the information to know that "header X changed,
scanning may have changed, so please rerun scanning". Although it is
possible to get the information by running clang-scan-deps for the
second time with make format, it is not user friendly clearly.

Reviewed By: jansvoboda11

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


  Commit: 46ea8e1db2babadb30f17eb584452e07a6282e3a
      https://github.com/llvm/llvm-project/commit/46ea8e1db2babadb30f17eb584452e07a6282e3a
  Author: Kai Luo <lkail at cn.ibm.com>
  Date:   2023-02-13 (Mon, 13 Feb 2023)

  Changed paths:
    M clang/tools/clang-scan-deps/CMakeLists.txt

  Log Message:
  -----------
  [CMake] Fix -DBUILD_SHARED_LIBS=on builds after D137534


  Commit: e171ce96349ada2bb111338e1b319883aa688fb4
      https://github.com/llvm/llvm-project/commit/e171ce96349ada2bb111338e1b319883aa688fb4
  Author: Martin Storsjö <martin at martin.st>
  Date:   2023-02-13 (Mon, 13 Feb 2023)

  Changed paths:
    M openmp/runtime/src/z_Linux_asm.S

  Log Message:
  -----------
  [openmp] Fix building z_Linux_asm.S for armv5t

Don't use the ldrd instruction; that one requires armv5te. Instead
do two separate loads (or only one if OMPT_SUPPORT isn't defined).

This should fix https://github.com/llvm/llvm-project/issues/60370.

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

(cherry picked from commit 89197b59f597995ecb6b6dc2e262a1ecddeee901)


  Commit: d19ef5ffce38296f53ed83d932b0b056e13c2a34
      https://github.com/llvm/llvm-project/commit/d19ef5ffce38296f53ed83d932b0b056e13c2a34
  Author: Konstantin Varlamov <varconst at apple.com>
  Date:   2023-02-13 (Mon, 13 Feb 2023)

  Changed paths:
    M libcxx/test/support/assert_macros.h

  Log Message:
  -----------
  [libc++] In tests, use `abort` to terminate upon an error.

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

(cherry picked from commit 8e13ec9eca1fc758c213a94b563221e6afc5b031)


Compare: https://github.com/llvm/llvm-project/compare/d0f4bebc4030...d19ef5ffce38


More information about the All-commits mailing list