[all-commits] [llvm/llvm-project] 8eea58: [C++20] [Modules] Introduce -fskip-odr-check-in-gm...

Chuanqi Xu via All-commits all-commits at lists.llvm.org
Wed Jan 31 21:44:43 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8eea582dcb900afb45866a09296624b6fef9dd20
      https://github.com/llvm/llvm-project/commit/8eea582dcb900afb45866a09296624b6fef9dd20
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-02-01 (Thu, 01 Feb 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/docs/StandardCPlusPlusModules.rst
    M clang/include/clang/Basic/LangOptions.def
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/Serialization/ASTReader.h
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    A clang/test/Driver/modules-skip-odr-check-in-gmf.cpp
    M clang/test/Modules/concept.cppm
    M clang/test/Modules/polluted-operator.cppm
    M clang/test/Modules/pr76638.cppm
    A clang/test/Modules/skip-odr-check-in-gmf.cppm

  Log Message:
  -----------
  [C++20] [Modules] Introduce -fskip-odr-check-in-gmf (#79959)

Close https://github.com/llvm/llvm-project/issues/79240

Cite the comment from @mizvekov in
//github.com/llvm/llvm-project/issues/79240:

> There are two kinds of bugs / issues relevant here:
>
> Clang bugs that this change hides
> Here we can add a Frontend flag that disables the GMF ODR check, just
> so
> we can keep tracking, testing and fixing these issues.
> The Driver would just always pass that flag.
> We could add that flag in this current issue.
> Bugs in user code:
> I don't think it's worth adding a corresponding Driver flag for
> controlling the above Frontend flag, since we intend it's behavior to
> become default as we fix the problems, and users interested in testing
> the more strict behavior can just use the Frontend flag directly.

This patch follows the suggestion:
- Introduce the CC1 flag `-fskip-odr-check-in-gmf` which is by default
off, so that the every existing test will still be tested with checking
ODR violations.
- Passing `-fskip-odr-check-in-gmf` in the driver to keep the behavior
we intended.
- Edit the document to tell the users who are still interested in more
strict checks can use `-Xclang -fno-skip-odr-check-in-gmf` to get the
existing behavior.




More information about the All-commits mailing list