[llvm] r203986 - Object/COFF: change data type of SymbolNumber from int16 to uint16.
ruiu at google.com
Mon Mar 17 13:03:01 PDT 2014
I will add a function isReservedSectionNumber() to check if it's one of
UNDEFINED, ABSOLUTE or DEBUG sections.
On Mon, Mar 17, 2014 at 12:03 AM, David Majnemer
<david.majnemer at gmail.com>wrote:
> IMAGE_SYM_SECTION_MAX is defined as 0xFEFF which means that the valid
> range is from 1 to 65279.
> On Sun Mar 16 2014 at 6:51:25 PM, Nico Rieck <nico.rieck at gmail.com> wrote:
>> On 15.03.2014 01:04, Rui Ueyama wrote:
>> > Author: ruiu
>> > Date: Fri Mar 14 19:04:08 2014
>> > New Revision: 203986
>> > URL: http://llvm.org/viewvc/llvm-project?rev=203986&view=rev
>> > Log:
>> > Object/COFF: change data type of SymbolNumber from int16 to uint16.
>> > Microsoft PE/COFF Spec clearly states that the field is of signed
>> > type. However, in reality, it's unsigned. If cl.exe needs to create a
>> > number of sections for COMDAT sections, it will just create more than
>> > sections. Handling large section number as negative number is not
>> > I think this is a spec bug.
>> > Differential Revision: http://llvm-reviews.chandlerc.com/D3088
>> > Modified:
>> > llvm/trunk/include/llvm/Object/COFF.h
>> > llvm/trunk/include/llvm/Support/COFF.h
>> > llvm/trunk/test/MC/COFF/feat00.s
>> > llvm/trunk/test/MC/COFF/weak.s
>> > llvm/trunk/tools/llvm-nm/llvm-nm.cpp
>> No test?
>> This is also missing a few more spots where checks assume a signed
>> section number (in COFFObjectFile::getSymbolType,
>> COFFObjectFile::getSymbolSize and llvm-readobj COFFDumper::printSymbol).
>> These checks shouldn't really be done this way and instead use a helper
>> function to determine whether the section number is an index.
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-commits