[all-commits] [llvm/llvm-project] af06f7: [AIX][XCOFF][Bug-Fixed] parse the parameter type o...

diggerlin via All-commits all-commits at lists.llvm.org
Thu Jul 15 13:54:50 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: af06f7bcf35f146fd70e4424bbec62dadc4dba70
      https://github.com/llvm/llvm-project/commit/af06f7bcf35f146fd70e4424bbec62dadc4dba70
  Author: zhijian <zhijian at ca.ibm.com>
  Date:   2021-07-15 (Thu, 15 Jul 2021)

  Changed paths:
    M llvm/lib/BinaryFormat/XCOFF.cpp
    M llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable.ll

  Log Message:
  -----------
  [AIX][XCOFF][Bug-Fixed] parse the parameter type of the traceback table

Summary:
in the function PPCFunctionInfo::getParmsType(), there is if (Bits > 31 || (Bits > 30 && (Elt != FixedType || hasVectorParms())))

when the Bit is 31 and the Elt is not FixedType(for example the Elt is FloatingType) , the 31th bit will be not encoded, it leave the bit as zero, when the function Expected<SmallString<32>> XCOFF::parseParmsType() the original implement
**// unsigned ParmsNum = FixedParmsNum + FloatingParmsNum;

while (Bits < 32 && ParsedNum < ParmsNum) {
...
}//**
it will look the 31 bits (zero) as FixedType. which should be FloatingType,  and get a error.

Reviewers: Jason Liu,ZarkoCA

Differential Revision: https://reviews.llvm.org/D105023




More information about the All-commits mailing list