[all-commits] [llvm/llvm-project] c3761b: [clang] Add formal linkage to textual AST dump (#1...

Vlad Serebrennikov via All-commits all-commits at lists.llvm.org
Mon May 4 13:23:23 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c3761b6ac6e2a90e55389dbe7f65cb632827df62
      https://github.com/llvm/llvm-project/commit/c3761b6ac6e2a90e55389dbe7f65cb632827df62
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2026-05-05 (Tue, 05 May 2026)

  Changed paths:
    M clang-tools-extra/clangd/test/ast-no-range.test
    M clang-tools-extra/clangd/test/ast.test
    M clang-tools-extra/clangd/unittests/DumpASTTests.cpp
    M clang/include/clang/AST/TextNodeDumper.h
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/test/AST/ast-dump-color.cpp
    M clang/test/AST/ast-dump-constant-expr.cpp
    M clang/test/AST/ast-dump-ctad-alias.cpp
    M clang/test/AST/ast-dump-decl.c
    M clang/test/AST/ast-dump-decl.cpp
    M clang/test/AST/ast-dump-lambda.cpp
    A clang/test/AST/ast-dump-linkage-internal.cpp
    A clang/test/AST/ast-dump-linkage.cpp
    M clang/test/AST/ast-dump-openmp-atomic.c
    M clang/test/AST/ast-dump-openmp-barrier.c
    M clang/test/AST/ast-dump-openmp-cancel.c
    M clang/test/AST/ast-dump-openmp-cancellation-point.c
    M clang/test/AST/ast-dump-openmp-critical.c
    M clang/test/AST/ast-dump-openmp-distribute-parallel-for-simd.c
    M clang/test/AST/ast-dump-openmp-distribute-parallel-for.c
    M clang/test/AST/ast-dump-openmp-distribute-simd.c
    M clang/test/AST/ast-dump-openmp-distribute.c
    M clang/test/AST/ast-dump-openmp-flush.c
    M clang/test/AST/ast-dump-openmp-for-simd.c
    M clang/test/AST/ast-dump-openmp-for.c
    M clang/test/AST/ast-dump-openmp-master.c
    M clang/test/AST/ast-dump-openmp-ordered.c
    M clang/test/AST/ast-dump-openmp-parallel-for-simd.c
    M clang/test/AST/ast-dump-openmp-parallel-for.c
    M clang/test/AST/ast-dump-openmp-parallel-sections.c
    M clang/test/AST/ast-dump-openmp-parallel.c
    M clang/test/AST/ast-dump-openmp-section.c
    M clang/test/AST/ast-dump-openmp-sections.c
    M clang/test/AST/ast-dump-openmp-simd.c
    M clang/test/AST/ast-dump-openmp-single.c
    M clang/test/AST/ast-dump-openmp-target-data.c
    M clang/test/AST/ast-dump-openmp-target-enter-data.c
    M clang/test/AST/ast-dump-openmp-target-exit-data.c
    M clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c
    M clang/test/AST/ast-dump-openmp-target-parallel-for.c
    M clang/test/AST/ast-dump-openmp-target-parallel.c
    M clang/test/AST/ast-dump-openmp-target-simd.c
    M clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c
    M clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c
    M clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c
    M clang/test/AST/ast-dump-openmp-target-teams-distribute.c
    M clang/test/AST/ast-dump-openmp-target-teams.c
    M clang/test/AST/ast-dump-openmp-target-update.c
    M clang/test/AST/ast-dump-openmp-target.c
    M clang/test/AST/ast-dump-openmp-task.c
    M clang/test/AST/ast-dump-openmp-taskgroup.c
    M clang/test/AST/ast-dump-openmp-taskloop-simd.c
    M clang/test/AST/ast-dump-openmp-taskloop.c
    M clang/test/AST/ast-dump-openmp-taskwait.c
    M clang/test/AST/ast-dump-openmp-taskyield.c
    M clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c
    M clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c
    M clang/test/AST/ast-dump-openmp-teams-distribute-simd.c
    M clang/test/AST/ast-dump-openmp-teams-distribute.c
    M clang/test/AST/ast-dump-openmp-teams.c
    M clang/test/AST/ast-dump-template-name.cpp
    M clang/test/AST/ast-dump-templates-pattern.cpp
    M clang/test/AST/ast-dump-templates.cpp
    M clang/test/AST/ast-dump-type-callingconv.cpp
    M clang/test/AST/attr-lifetime-capture-by.cpp
    M clang/test/AST/multistep-explicit-cast.c
    M clang/test/AST/multistep-explicit-cast.cpp
    M clang/test/ASTSYCL/ast-dump-sycl-kernel-call-stmt.cpp
    M clang/test/ASTSYCL/ast-dump-sycl-kernel-entry-point.cpp
    M clang/test/CXX/class/class.friend/p7-cxx20.cpp
    M clang/test/CXX/class/class.mfct/p1-cxx20.cpp
    M clang/test/ParserHLSL/hlsl_resource_class_attr.hlsl
    M clang/test/ParserHLSL/hlsl_resource_handle_attrs.hlsl
    M clang/test/SemaOpenCL/multistep-explicit-cast.cl
    M clang/test/SemaTemplate/deduction-guide.cpp

  Log Message:
  -----------
  [clang] Add formal linkage to textual AST dump (#194600)

This PR adds formal linkage (external, module, internal) to the textual
AST dumps. The motivation is to inform users (including ourselves) what
Clang thinks the linkage is, and to prevent situations where `extern` is
mistaken for an indication of external linkage (see #192116 for an
example).

The wording around linkage is known to be defective, but that's the best
we have: [[basic.link]](https://eel.is/c++draft/basic.link) paragraphs 3
through 7.

There are enough changes in this PR, so I decided to defer adding formal
linkage to JSON dumps to another PR.

(Open questions and suggestions for reviewers are in
https://github.com/llvm/llvm-project/pull/194600#issuecomment-4360515791)

---------

Co-authored-by: Matheus Izvekov <mizvekov at gmail.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list