Index: llvm/trunk/test/ObjectYAML/COFF/default-alignment.yaml =================================================================== --- llvm/trunk/test/ObjectYAML/COFF/default-alignment.yaml +++ llvm/trunk/test/ObjectYAML/COFF/default-alignment.yaml @@ -0,0 +1,15 @@ +# RUN: yaml2obj %s | obj2yaml | FileCheck %s + +# CHECK: Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ] +# CHECK-NEXT: SectionData: '01' + +--- !COFF +header: + Machine: IMAGE_FILE_MACHINE_AMD64 + Characteristics: [] +sections: + - Name: .rdata + Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ] + SectionData: 01 +symbols: +... Index: llvm/trunk/tools/obj2yaml/coff2yaml.cpp =================================================================== --- llvm/trunk/tools/obj2yaml/coff2yaml.cpp +++ llvm/trunk/tools/obj2yaml/coff2yaml.cpp @@ -159,7 +159,8 @@ NewYAMLSection.Header.PointerToRelocations = COFFSection->PointerToRelocations; NewYAMLSection.Header.SizeOfRawData = COFFSection->SizeOfRawData; - NewYAMLSection.Alignment = ObjSection.getAlignment(); + uint32_t Shift = (COFFSection->Characteristics >> 20) & 0xF; + NewYAMLSection.Alignment = (1U << Shift) >> 1; assert(NewYAMLSection.Alignment <= 8192); ArrayRef sectionData;