Issue 56064
Summary cxxfilt produces inconsistent output
Labels new issue
Assignees
Reporter eschnett
    I am using `cxxfilt` on macos:
```
/opt/local/libexec/llvm-14/bin/llvm-cxxfilt
LLVM (http://llvm.org/):
  LLVM version 14.0.5
  Optimized build.
  Default target: x86_64-apple-darwin21.5.0
  Host CPU: skylake
```

This command:
```
llvm-cxxfilt-mp-14 __ZZN5Arith4fmapIZN3Z4c8z4c_varsINS_4simdIdEEEC1EbRKS4_S7_S7_S7_S7_S7_RKNS_3vecIS4_Li3ELNS_6dnup_tE0EEERKNS_4gmatIS4_Li3ELS9_0ELS9_0ELNS_6symm_tE1EEESH_RKNSD_ISA_Li3ELS9_0ELS9_0ELSE_1EEERKNSD_ISF_Li3ELS9_0ELS9_0ELSE_1EEES7_SC_SH_SK_RKNS8_IS4_Li3ELS9_1EEERKNS8_ISA_Li3ELS9_1EEES7_SC_S7_SC_SH_SQ_ST_RKNS8_ISF_Li3ELS9_1EEES7_SC_SH_EUliiE4_JiES4_EENS_4vectIT1_Li6EEERKT_RKNSY_IiLi6EEEDpRKNSY_IT0_Li6EEEENKUliE_clEi
```

produces inconsistent output:
```
Arith::vect<Arith::simd<double>, 6> Arith::fmap<Z4c::z4c_vars<Arith::simd<double> >::z4c_vars(bool, Arith::simd<double> const&, Arith::simd<double> const&, Arith::simd<double> const&, Arith::simd<double> const&, Arith::simd<double> const&, Arith::simd<double> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const&, Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::gmat<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::gmat<Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::simd<double> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const&, Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::gmat<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)1> const&, Arith::vec<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3, (Arith::dnup_t)1> const&, Arith::simd<double> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const&, Arith::simd<double> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const&, Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)1> const&, Arith::vec<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3, (Arith::dnup_t)1> const&, Arith::vec<Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1>, 3, (Arith::dnup_t)1> const&, Arith::simd<double> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const&, Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&)::'lambda4'(int, int), int, Arith::simd<double> >(Z4c::z4c_vars<Arith::simd<double> >::z4c_vars(bool, Arith::simd<double> const&, Arith::simd<double> const&, Arith::simd<double> const&, Arith::simd<double> const&, Arith::simd<double> const&, Arith::simd<double> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const&, Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::gmat<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::gmat<Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::simd<double> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const&, Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::gmat<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)1> const&, Arith::vec<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3, (Arith::dnup_t)1> const&, Arith::simd<double> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const&, Arith::simd<double> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const&, Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)1> const&, Arith::vec<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3, (Arith::dnup_t)1> const&, Arith::vec<Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1>, 3, (Arith::dnup_t)1> const&, Arith::simd<double> const&, Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const&, Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const&)::'lambda4'(int, int) const&, Arith::vect<int, 6> const&, Arith::vect<int, 6> const&)::'lambda'(int)::operator()(int) const
```

There are not enough closing parentheses.

If you run `clang-format` on this output you see:
```
Arith::vect<Arith::simd<double>, 6> Arith::fmap<
    Z4c::z4c_vars<Arith::simd<double>>::z4c_vars(
        bool, Arith::simd<double> const &, Arith::simd<double> const &,
        Arith::simd<double> const &, Arith::simd<double> const &,
        Arith::simd<double> const &, Arith::simd<double> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const &,
        Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &,
        Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &,
        Arith::gmat<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3,
                    (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const
            &,
        Arith::gmat<Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0,
                                (Arith::dnup_t)0, (Arith::symm_t)1>,
                    3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &,
        Arith::simd<double> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const &,
        Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &,
        Arith::gmat<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3,
                    (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const
            &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)1> const &,
        Arith::vec<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3,
                   (Arith::dnup_t)1> const &,
        Arith::simd<double> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const &,
        Arith::simd<double> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const &,
        Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)1> const &,
        Arith::vec<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3,
                   (Arith::dnup_t)1> const &,
        Arith::vec<Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0,
                               (Arith::dnup_t)0, (Arith::symm_t)1>,
                   3, (Arith::dnup_t)1> const &,
        Arith::simd<double> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const &,
        Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &)::'lambda4'(int, int),
    int, Arith::simd<double>>(
    Z4c::z4c_vars<Arith::simd<double>>::z4c_vars(
        bool, Arith::simd<double> const &, Arith::simd<double> const &,
        Arith::simd<double> const &, Arith::simd<double> const &,
        Arith::simd<double> const &, Arith::simd<double> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const &,
        Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &,
        Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &,
        Arith::gmat<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3,
                    (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const
            &,
        Arith::gmat<Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0,
                                (Arith::dnup_t)0, (Arith::symm_t)1>,
                    3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &,
        Arith::simd<double> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const &,
        Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &,
        Arith::gmat<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3,
                    (Arith::dnup_t)0, (Arith::dnup_t)0, (Arith::symm_t)1> const
            &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)1> const &,
        Arith::vec<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3,
                   (Arith::dnup_t)1> const &,
        Arith::simd<double> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const &,
        Arith::simd<double> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const &,
        Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)1> const &,
        Arith::vec<Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0>, 3,
                   (Arith::dnup_t)1> const &,
        Arith::vec<Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0,
                               (Arith::dnup_t)0, (Arith::symm_t)1>,
                   3, (Arith::dnup_t)1> const &,
        Arith::simd<double> const &,
        Arith::vec<Arith::simd<double>, 3, (Arith::dnup_t)0> const &,
        Arith::gmat<Arith::simd<double>, 3, (Arith::dnup_t)0, (Arith::dnup_t)0,
                    (Arith::symm_t)1> const &)::'lambda4'(int, int) const &,
    Arith::vect<int, 6> const &,
    Arith::vect<int, 6> const &)::'lambda'(int)::operator()(int) const
```

At least one closing parenthesis is missing, maybe more text is cut off.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to