[PATCH] D134282: [CGP] Add generic TargetLowering::shouldAlignPointerArgs() implementation
Jake Egan via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 21 07:12:38 PST 2023
Jake-Egan added a comment.
It fails with a different assembler error on different platforms (tried on AIX, linux, and mac). No error if you remove the AIX target.
clang++ -target powerpc64-ibm-aix -c foo.cc
namespace {
template <class a, class d> void aa(a, d);
template <class> struct e;
class g;
template <class ac, class = ac, class = g> class h;
template <class ad, class f> void i(ad *j, ad *k, f l) {
long a(k - j);
__builtin_memmove(l, j, a);
aa(j, l);
}
template <class af, class ag, class ah> void ai(af j, ag k, ah l) {
i(j, k, l);
}
template <class aj, class ak> void al(aj j, aj k, ak l) { ai(j, k, l); }
template <class aj, class am, class ak> ak an(aj j, am k, ak l) {
al(j, j + k, l);
}
template <> struct e<char> {
static char m(char *j, const char *k, long l) { an(k, l, j); }
};
template <class> struct as {
as(int);
};
template <class d> class n : as<int>, as<d> {
public:
using au = as;
using av = as<d>;
template <class aw, class ax> n(aw, ax) : au(0), av(0) {}
};
template <class, class, class> class h {
n<g> ay;
public:
h(char *j) : ay(int(), int()) {
long b;
o(j, b);
}
void o(const char *, int);
};
template <class ac, class bc, class bd>
void h<ac, bc, bd>::o(const char *j, int k) {
e<char>::m(0, j, k);
}
} // namespace
struct {
h<int> b;
} c{"error message"};
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D134282/new/
https://reviews.llvm.org/D134282
More information about the llvm-commits
mailing list