mirror of https://github.com/libAthena/athena.git
Fix code generation for Endian template parameter values on LLVM 11
This commit is contained in:
parent
4e29ba7d8f
commit
f298113c4e
|
@ -419,7 +419,7 @@ class ATDNAEmitVisitor : public clang::RecursiveASTVisitor<ATDNAEmitVisitor> {
|
||||||
regType = regType->getUnqualifiedDesugaredType();
|
regType = regType->getUnqualifiedDesugaredType();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string fieldName = field->getName();
|
std::string fieldName = field->getName().str();
|
||||||
std::string propIdExpr = GetPropIdExpr(field, fieldName);
|
std::string propIdExpr = GetPropIdExpr(field, fieldName);
|
||||||
|
|
||||||
if (regType->getTypeClass() == clang::Type::TemplateSpecialization) {
|
if (regType->getTypeClass() == clang::Type::TemplateSpecialization) {
|
||||||
|
@ -431,6 +431,8 @@ class ATDNAEmitVisitor : public clang::RecursiveASTVisitor<ATDNAEmitVisitor> {
|
||||||
llvm::APSInt endian(64, -1);
|
llvm::APSInt endian(64, -1);
|
||||||
std::string endianExprStr;
|
std::string endianExprStr;
|
||||||
bool defaultEndian = true;
|
bool defaultEndian = true;
|
||||||
|
/* FIXME: The is the following code required? */
|
||||||
|
#if 0
|
||||||
if (classParms->size() >= 2) {
|
if (classParms->size() >= 2) {
|
||||||
const clang::NamedDecl* endianParm = classParms->getParam(1);
|
const clang::NamedDecl* endianParm = classParms->getParam(1);
|
||||||
if (endianParm->getKind() == clang::Decl::NonTypeTemplateParm) {
|
if (endianParm->getKind() == clang::Decl::NonTypeTemplateParm) {
|
||||||
|
@ -439,7 +441,7 @@ class ATDNAEmitVisitor : public clang::RecursiveASTVisitor<ATDNAEmitVisitor> {
|
||||||
nttParm->print(strStream, context.getPrintingPolicy());
|
nttParm->print(strStream, context.getPrintingPolicy());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
for (const clang::TemplateArgument& arg : *tsType) {
|
for (const clang::TemplateArgument& arg : *tsType) {
|
||||||
if (arg.getKind() == clang::TemplateArgument::Expression) {
|
if (arg.getKind() == clang::TemplateArgument::Expression) {
|
||||||
const clang::Expr* expr = arg.getAsExpr();
|
const clang::Expr* expr = arg.getAsExpr();
|
||||||
|
@ -818,7 +820,7 @@ class ATDNAEmitVisitor : public clang::RecursiveASTVisitor<ATDNAEmitVisitor> {
|
||||||
regType = regType->getUnqualifiedDesugaredType();
|
regType = regType->getUnqualifiedDesugaredType();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string fieldName = field->getName();
|
std::string fieldName = field->getName().str();
|
||||||
std::string propIdExpr = GetPropIdExpr(field, fieldName);
|
std::string propIdExpr = GetPropIdExpr(field, fieldName);
|
||||||
|
|
||||||
if (regType->getTypeClass() == clang::Type::TemplateSpecialization) {
|
if (regType->getTypeClass() == clang::Type::TemplateSpecialization) {
|
||||||
|
|
Loading…
Reference in New Issue