<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/93604>93604</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] Regression clang-format-19 wrong namespace and spacing
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-format
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          prj-
      </td>
    </tr>
</table>

<pre>
    ```c
$ clang-format sf.hpp
#pragma once

#include "sfcupm.hpp"
#include <../src/sys/objects/device/impls/cupm/kernels.hpp>
#include <petsc/private/cupmatomics.hpp>

namespace Petsc {

namespace sf {

namespace cupm {

namespace kernels {

/*====================================================================================*/
/* Init various types and instantiate pack/unpack function pointers */
/*====================================================================================*/
template <device::cupm::DeviceType T>
template <typename Type, PetscInt BS, PetscInt EQ>
inline void SfInterface<T>::PackInit_RealType(PetscSFLink link) noexcept {
  /* Pack/unpack for remote communication */
 link->d_Pack = Pack<Type, BS, EQ>;
  link->d_UnpackAndInsert = UnpackAndOp<Type, kernels::Insert<Type>, BS, EQ>;
  link->d_UnpackAndAdd = UnpackAndOp<Type, kernels::Add<Type>, BS, EQ>;
  link->d_UnpackAndMult = UnpackAndOp<Type, kernels::Mult<Type>, BS, EQ>;
  link->d_UnpackAndMin = UnpackAndOp<Type, kernels::Min<Type>, BS, EQ>;
  link->d_UnpackAndMax = UnpackAndOp<Type, kernels::Max<Type>, BS, EQ>;
  link->d_FetchAndAdd = FetchAndOp<Type, kernels::Add<Type>, BS, EQ>;

  /* Scatter for local communication */
  link->d_ScatterAndInsert =
 ScatterAndInsert<Type, BS, EQ>; /* Has special optimizations */
 link->d_ScatterAndAdd = ScatterAndOp<Type, kernels::Add<Type>, BS, EQ>;
 link->d_ScatterAndMult = ScatterAndOp<Type, kernels::Mult<Type>, BS, EQ>;
 link->d_ScatterAndMin = ScatterAndOp<Type, kernels::Min<Type>, BS, EQ>;
 link->d_ScatterAndMax = ScatterAndOp<Type, kernels::Max<Type>, BS, EQ>;
 link->d_FetchAndAddLocal = FetchAndOpLocal<Type, kernels::Add<Type>, BS, EQ>;

  /* Atomic versions when there are data-race possibilities */
  link->da_UnpackAndInsert = UnpackAndOp<Type, AtomicInsert<Type>, BS, EQ>;
  link->da_UnpackAndAdd = UnpackAndOp<Type, AtomicAdd<Type>, BS, EQ>;
  link->da_UnpackAndMult = UnpackAndOp<Type, AtomicMult<Type>, BS, EQ>;
  link->da_UnpackAndMin = UnpackAndOp<Type, AtomicMin<Type>, BS, EQ>;
  link->da_UnpackAndMax = UnpackAndOp<Type, AtomicMax<Type>, BS, EQ>;
  link->da_FetchAndAdd = FetchAndOp<Type, AtomicAdd<Type>, BS, EQ>;

  link->da_ScatterAndInsert = ScatterAndOp<Type, AtomicInsert<Type>, BS, EQ>;
  link->da_ScatterAndAdd = ScatterAndOp<Type, AtomicAdd<Type>, BS, EQ>;
  link->da_ScatterAndMult = ScatterAndOp<Type, AtomicMult<Type>, BS, EQ>;
  link->da_ScatterAndMin = ScatterAndOp<Type, AtomicMin<Type>, BS, EQ>;
  link->da_ScatterAndMax = ScatterAndOp<Type, AtomicMax<Type>, BS, EQ>;
  link->da_FetchAndAddLocal = FetchAndOpLocal<Type, AtomicAdd<Type>, BS, EQ>;
}

/* Have this templated class to specialize for char integers */
template <device::cupm::DeviceType T>
template <typename Type, PetscInt BS, PetscInt EQ,
          PetscInt size /*sizeof(Type)*/>
struct SfInterface<T>::PackInit_IntegerType_Atomic {
  static inline void Init(PetscSFLink link) noexcept {
    link->da_UnpackAndInsert = UnpackAndOp<Type, AtomicInsert<Type>, BS, EQ>;
    link->da_UnpackAndAdd = UnpackAndOp<Type, AtomicAdd<Type>, BS, EQ>;
    link->da_UnpackAndMult = UnpackAndOp<Type, AtomicMult<Type>, BS, EQ>;
    link->da_UnpackAndMin = UnpackAndOp<Type, AtomicMin<Type>, BS, EQ>;
    link->da_UnpackAndMax = UnpackAndOp<Type, AtomicMax<Type>, BS, EQ>;
    link->da_UnpackAndLAND = UnpackAndOp<Type, AtomicLAND<Type>, BS, EQ>;
    link->da_UnpackAndLOR = UnpackAndOp<Type, AtomicLOR<Type>, BS, EQ>;
    link->da_UnpackAndLXOR = UnpackAndOp<Type, AtomicLXOR<Type>, BS, EQ>;
    link->da_UnpackAndBAND = UnpackAndOp<Type, AtomicBAND<Type>, BS, EQ>;
    link->da_UnpackAndBOR = UnpackAndOp<Type, AtomicBOR<Type>, BS, EQ>;
    link->da_UnpackAndBXOR = UnpackAndOp<Type, AtomicBXOR<Type>, BS, EQ>;
    link->da_FetchAndAdd = FetchAndOp<Type, AtomicAdd<Type>, BS, EQ>;

 link->da_ScatterAndInsert = ScatterAndOp<Type, AtomicInsert<Type>, BS, EQ>;
    link->da_ScatterAndAdd = ScatterAndOp<Type, AtomicAdd<Type>, BS, EQ>;
    link->da_ScatterAndMult = ScatterAndOp<Type, AtomicMult<Type>, BS, EQ>;
    link->da_ScatterAndMin = ScatterAndOp<Type, AtomicMin<Type>, BS, EQ>;
    link->da_ScatterAndMax = ScatterAndOp<Type, AtomicMax<Type>, BS, EQ>;
    link->da_ScatterAndLAND = ScatterAndOp<Type, AtomicLAND<Type>, BS, EQ>;
    link->da_ScatterAndLOR = ScatterAndOp<Type, AtomicLOR<Type>, BS, EQ>;
    link->da_ScatterAndLXOR = ScatterAndOp<Type, AtomicLXOR<Type>, BS, EQ>;
    link->da_ScatterAndBAND = ScatterAndOp<Type, AtomicBAND<Type>, BS, EQ>;
    link->da_ScatterAndBOR = ScatterAndOp<Type, AtomicBOR<Type>, BS, EQ>;
    link->da_ScatterAndBXOR = ScatterAndOp<Type, AtomicBXOR<Type>, BS, EQ>;
 link->da_FetchAndAddLocal = FetchAndOpLocal<Type, AtomicAdd<Type>, BS, EQ>;
  }
};

} // namespace kernels

} // namespace cupm

} // namespace sf

} // namespace Petsc
$ clang-format-19 sf.hpp
#pragma once

#include "sfcupm.hpp"
#include <../src/sys/objects/device/impls/cupm/kernels.hpp>
#include <petsc/private/cupmatomics.hpp>

namespace Petsc {

namespace sf {

namespace cupm {

namespace kernels {

/*====================================================================================*/
/* Init various types and instantiate pack/unpack function pointers */
/*====================================================================================*/
template <device::cupm::DeviceType T>
template <typename Type, PetscInt BS, PetscInt EQ>
inline void SfInterface<T>::PackInit_RealType(PetscSFLink link) noexcept {
  /* Pack/unpack for remote communication */
 link->d_Pack = Pack<Type, BS, EQ>;
  link->d_UnpackAndInsert = UnpackAndOp<Type, kernels::Insert<Type>, BS, EQ>;
  link->d_UnpackAndAdd = UnpackAndOp<Type, kernels::Add<Type>, BS, EQ>;
  link->d_UnpackAndMult = UnpackAndOp<Type, kernels::Mult<Type>, BS, EQ>;
  link->d_UnpackAndMin = UnpackAndOp<Type, kernels::Min<Type>, BS, EQ>;
  link->d_UnpackAndMax = UnpackAndOp<Type, kernels::Max<Type>, BS, EQ>;
  link->d_FetchAndAdd = FetchAndOp<Type, kernels::Add<Type>, BS, EQ>;

  /* Scatter for local communication */
  link->d_ScatterAndInsert =
 ScatterAndInsert<Type, BS, EQ>; /* Has special optimizations */
 link->d_ScatterAndAdd = ScatterAndOp<Type, kernels::Add<Type>, BS, EQ>;
 link->d_ScatterAndMult = ScatterAndOp<Type, kernels::Mult<Type>, BS, EQ>;
 link->d_ScatterAndMin = ScatterAndOp<Type, kernels::Min<Type>, BS, EQ>;
 link->d_ScatterAndMax = ScatterAndOp<Type, kernels::Max<Type>, BS, EQ>;
 link->d_FetchAndAddLocal = FetchAndOpLocal<Type, kernels::Add<Type>, BS, EQ>;

  /* Atomic versions when there are data-race possibilities */
  link->da_UnpackAndInsert = UnpackAndOp<Type, AtomicInsert<Type>, BS, EQ>;
  link->da_UnpackAndAdd = UnpackAndOp<Type, AtomicAdd<Type>, BS, EQ>;
  link->da_UnpackAndMult = UnpackAndOp<Type, AtomicMult<Type>, BS, EQ>;
  link->da_UnpackAndMin = UnpackAndOp<Type, AtomicMin<Type>, BS, EQ>;
  link->da_UnpackAndMax = UnpackAndOp<Type, AtomicMax<Type>, BS, EQ>;
  link->da_FetchAndAdd = FetchAndOp<Type, AtomicAdd<Type>, BS, EQ>;

  link->da_ScatterAndInsert = ScatterAndOp<Type, AtomicInsert<Type>, BS, EQ>;
  link->da_ScatterAndAdd = ScatterAndOp<Type, AtomicAdd<Type>, BS, EQ>;
  link->da_ScatterAndMult = ScatterAndOp<Type, AtomicMult<Type>, BS, EQ>;
  link->da_ScatterAndMin = ScatterAndOp<Type, AtomicMin<Type>, BS, EQ>;
  link->da_ScatterAndMax = ScatterAndOp<Type, AtomicMax<Type>, BS, EQ>;
  link->da_FetchAndAddLocal = FetchAndOpLocal<Type, AtomicAdd<Type>, BS, EQ>;
}

/* Have this templated class to specialize for char integers */
template <device::cupm::DeviceType T>
template <typename Type, PetscInt BS, PetscInt EQ,
          PetscInt size /*sizeof(Type)*/>
struct SfInterface<T>::PackInit_IntegerType_Atomic{static inline void Init(
 PetscSFLink link) noexcept {
    link->da_UnpackAndInsert = UnpackAndOp<Type, AtomicInsert<Type>, BS, EQ>;
link->da_UnpackAndAdd = UnpackAndOp<Type, AtomicAdd<Type>, BS, EQ>;
link->da_UnpackAndMult = UnpackAndOp<Type, AtomicMult<Type>, BS, EQ>;
link->da_UnpackAndMin = UnpackAndOp<Type, AtomicMin<Type>, BS, EQ>;
link->da_UnpackAndMax = UnpackAndOp<Type, AtomicMax<Type>, BS, EQ>;
link->da_UnpackAndLAND = UnpackAndOp<Type, AtomicLAND<Type>, BS, EQ>;
link->da_UnpackAndLOR = UnpackAndOp<Type, AtomicLOR<Type>, BS, EQ>;
link->da_UnpackAndLXOR = UnpackAndOp<Type, AtomicLXOR<Type>, BS, EQ>;
link->da_UnpackAndBAND = UnpackAndOp<Type, AtomicBAND<Type>, BS, EQ>;
link->da_UnpackAndBOR = UnpackAndOp<Type, AtomicBOR<Type>, BS, EQ>;
link->da_UnpackAndBXOR = UnpackAndOp<Type, AtomicBXOR<Type>, BS, EQ>;
link->da_FetchAndAdd = FetchAndOp<Type, AtomicAdd<Type>, BS, EQ>;

link->da_ScatterAndInsert = ScatterAndOp<Type, AtomicInsert<Type>, BS, EQ>;
link->da_ScatterAndAdd = ScatterAndOp<Type, AtomicAdd<Type>, BS, EQ>;
link->da_ScatterAndMult = ScatterAndOp<Type, AtomicMult<Type>, BS, EQ>;
link->da_ScatterAndMin = ScatterAndOp<Type, AtomicMin<Type>, BS, EQ>;
link->da_ScatterAndMax = ScatterAndOp<Type, AtomicMax<Type>, BS, EQ>;
link->da_ScatterAndLAND = ScatterAndOp<Type, AtomicLAND<Type>, BS, EQ>;
link->da_ScatterAndLOR = ScatterAndOp<Type, AtomicLOR<Type>, BS, EQ>;
link->da_ScatterAndLXOR = ScatterAndOp<Type, AtomicLXOR<Type>, BS, EQ>;
link->da_ScatterAndBAND = ScatterAndOp<Type, AtomicBAND<Type>, BS, EQ>;
link->da_ScatterAndBOR = ScatterAndOp<Type, AtomicBOR<Type>, BS, EQ>;
link->da_ScatterAndBXOR = ScatterAndOp<Type, AtomicBXOR<Type>, BS, EQ>;
link->da_FetchAndAddLocal = FetchAndOpLocal<Type, AtomicAdd<Type>, BS, EQ>;
} // namespace kernels
}; // namespace cupm

} // namespace sf

} // namespace Petsc

} // namespace sf

} // namespace Petsc
$ clang-format-19 --version                       
Debian clang-format version 19.0.0 (++20240527100630+434ee06d7761-1~exp1~20240527220812.2113)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW9Fv2roX_mvMiwUKDpDywAOUolXa77fddlfa2-Q4B_CaOFFsWLuH_e1XdhJIKQwDM7fSTVW1IbbP53P8-fiET6FS8oUAGKH-BPWnLbpSyzQfZfn3ditMo5cRGnjFL0PeFHljRHqYxVQs2vM0T6jCct5ZZlnV6Gc5XSQUp4JBea9q4YLFqwgwIkTO2SpLzDhC3nbwbzsdRGYyZ_rvi0RklobfgSl9FcGaM0BkxpMs1je0KURmT5ALiKUx6t_tM5qBktpilvM1VVAOpSpNONsZZ_4KmoDMKAP8WY_EKJjsb5bzw20a4nBrOendDojMEBkjf_rf_SUmCLVo4HvBFV7TnKcridVLBhJTEWEupKJCcaoAZ5Q9ITJbCX2B5yvBFE8FzlIuFOQSv7X67zv6PmKsIMliHULk35Y7zB8jf2w2l7mamrtfXjLAXzYbpT5ML4lmNtZ9ELktds29UHjy-Orj3V-b8VzEXABepzzCj_N7vUpzqrFvDYYB_kzZk177bw9A48L2jbH1OPvIxROOuXhCZIhFCs8MMrXdTBiX1Pn8mhdpjnNIUgWYpUmyEpxRw5N6QIzZNvLvom96NEb-tDDj31b-FW4V3vgbyO24vw3cWET3QkKujInNvU9ZzVKZBgp_i95Vq393EtQ4imxxxlF0Jsj_VrG1N7rvuTBcWKNwcS4IfbYGoc-ngcxAsWVtUarPF67JDrkfGVUKckPrOGU0_h2ra7Mrx73iZ9lrt-kg6as5fKASywwYpzFOM8UT_tOAy0N7aotQBWd751LK7kPZUNYGxpKze3FKzlrBWJF2L0pJWisUK9buJe1Hw6bXzDX3_iR9x6b-wmvIpSHMjyUIrJaQA6Y54Igq2s51rZSlUvKQx1xxkIdYTU_IugXyGemW2ubbAuHUREutM21h_-QUS21zbGn_xORKbbNraf7EtErt8uoJsd8DsS85HtpuF_DIOg2eyyT7DHg2l6yT37lsss57f4BPNinvFGYF07fPdfgDXQNWSy5xVT9H-plaSqzS6hjlP8Gc6GxJc6wfXxa7DzBXLtnJbRW56mfTKvVkC9_0ZTpH5KawOCwnXIFLla-YOl7q3xcOayPfygOiVtVLRRVnuP7woEed8FxwpRPD-ZlxhVPD-bnh_OTYD_Bx_P_pUQTd6QKITw_HET49XADw1Qbh6yUQE5swTS4K08TCiclFPtiEaXJOmBxVIlcqRK5QilylGLlCOXKFguQAxCZP_RbjrERVAyk3yO8xztggNYivVhjn7MKtxYlVsM5KVzUQG0fOSVg1CKtgWaasq1S6GG9r3WC6k9BQMC3qwxl-o30c7Wfq2WOd5PxoF1Mb7hex2t1ho2M1OpZjjaXRsdzHuNGxGh2r0bEaHavRsRodq9GxGh2r0bEaHavRsRod693oWCiYHJavypm9KxXL6Wnh-KxwelI4PSccK1ZO1SrHSpVjlcqpQuVYnXJeW1ylsnBcVzivKhzXFI4rCucilGMByrn45Fx4ciw6ORecrlWRHpOUjAx1HT3JpTDVbpffKeD9P8XIKYScitevZlXjusOO1_GwLjDJBJEJ8UjP65Og63kD30Nk0vN7AN4gCoJBt939Bc9Z91fViRDvpks6pNv1dR1cTLN6KawVjfxo6A9pC0bdoDsYkn4QeK3lKISoH5JgGHoRUNYLewHzu8FNEAYhnZMBa_FRCXDTHfaGvtcZDgB6EfSHXtiD3mCOeh4klMedOF4nnTRftLiUKxgN_YHXa8U0hFiat9YIqTuNCEH9aSsf6WHtcLWQqOfFXCq5NaS4is0bb68G9qf4ARY5SBOz3VX4kadiUVs0KiKsr7hYtFZ5PFoqlZlvj8zqLrharsIOSxNEZhq3_NfO8vQ7MIXIzHgjEZkVDq1H5J8AAAD___mHMc4">