[clang] [clang] Substitute alias templates from correct context (PR #74335)

Mikhail Goncharov via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 6 09:48:57 PST 2023


metaflow wrote:

here is a sample for OSS ducc https://gitlab.mpcdf.mpg.de/mtr/ducc.git (lines might be off)
```
In file included from third_party/ducc/src/ducc0/fft/fftnd_impl.h:76:
third_party/ducc/src/ducc0/fft/fft1d_impl.h:1730:51: error: return type of out-of-line definition of 'ducc0::detail_fft::cfftpass::make_pass' differs from that in the declaration
 1730 | template<typename Tfs> Tcpass<Tfs> cfftpass<Tfs>::make_pass(size_t l1,
      |                        ~~~~~~~~~~~                ^
third_party/ducc/src/ducc0/fft/fft.h:205:33: note: previous declaration is here
  205 |     static shared_ptr<cfftpass> make_pass(size_t l1, size_t ido, size_t ip,
      |            ~~~~~~~~~~~~~~~~~~~~ ^
In file included from third_party/ducc/src/ducc0/fft/fftnd_impl.h:76:
third_party/ducc/src/ducc0/fft/fft1d_impl.h:2945:51: error: return type of out-of-line definition of 'ducc0::detail_fft::rfftpass::make_pass' differs from that in the declaration
 2945 | template<typename Tfs> Trpass<Tfs> rfftpass<Tfs>::make_pass(size_t l1,
      |                        ~~~~~~~~~~~                ^
third_party/ducc/src/ducc0/fft/fft.h:249:33: note: previous declaration is here
  249 |     static shared_ptr<rfftpass> make_pass(size_t l1, size_t ido, size_t ip,
      |            ~~~~~~~~~~~~~~~~~~~~ ^
```
sorry I don't have a smaller repro. It seems that "using" in the class body somehow messes things up.

https://github.com/llvm/llvm-project/pull/74335


More information about the cfe-commits mailing list