[llvm-commits] [llvm] r132197 - /llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
Devang Patel
dpatel at apple.com
Fri May 27 11:53:36 PDT 2011
On May 27, 2011, at 11:42 AM, Eli Friedman wrote:
> On Fri, May 27, 2011 at 11:15 AM, Devang Patel <dpatel at apple.com> wrote:
>> Author: dpatel
>> Date: Fri May 27 13:15:52 2011
>> New Revision: 132197
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=132197&view=rev
>> Log:
>> Handle signed types gracefully.
>> This fixes regressions reported by buildbots as a fallout of r132193.
>
> Still broken; see
> http://smooshlab.apple.com:8013/builders/clang-x86_64-darwin10-gcc42-RA/builds/3462/steps/run.llvm.tests/logs/LLVM%20%3A%3A%20CodeGen___X86___dbg-const-int.ll
>
I am investigating this.
-
Devang
> -Eli
>
>> Modified:
>> llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
>>
>> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp?rev=132197&r1=132196&r2=132197&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp Fri May 27 13:15:52 2011
>> @@ -444,16 +444,28 @@
>> DIType Ty) {
>> assert (MO.isImm() && "Invalid machine operand!");
>> DIEBlock *Block = new (DIEValueAllocator) DIEBlock();
>> - unsigned Imm = MO.getImm();
>> unsigned form = dwarf::DW_FORM_udata;
>> - switch (Ty.getSizeInBits()) {
>> - case 8: form = dwarf::DW_FORM_data1; break;
>> - case 16: form = dwarf::DW_FORM_data2; break;
>> - case 32: form = dwarf::DW_FORM_data4; break;
>> - case 64: form = dwarf::DW_FORM_data8; break;
>> - default: break;
>> - }
>> - addUInt(Block, 0, form, Imm);
>> + DIBasicType BTy(Ty);
>> + if (BTy.Verify()) {
>> + unsigned Encoding = BTy.getEncoding();
>> + if (Encoding == dwarf::DW_ATE_signed ||
>> + Encoding == dwarf::DW_ATE_signed_char) {
>> + form = dwarf::DW_FORM_sdata;
>> + addSInt(Block, 0, dwarf::DW_FORM_sdata, MO.getImm());
>> + } else {
>> + switch (Ty.getSizeInBits()) {
>> + case 8: form = dwarf::DW_FORM_data1; break;
>> + case 16: form = dwarf::DW_FORM_data2; break;
>> + case 32: form = dwarf::DW_FORM_data4; break;
>> + case 64: form = dwarf::DW_FORM_data8; break;
>> + default: break;
>> + }
>> + addUInt(Block, 0, form, MO.getImm());
>> + }
>> + } else
>> + //if this is not basic type then just use _udata.
>> + addUInt(Block, 0, form, MO.getImm());
>> +
>> addBlock(Die, dwarf::DW_AT_const_value, 0, Block);
>> return true;
>> }
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20110527/9fe9fd94/attachment.html>
More information about the llvm-commits
mailing list