@@ -2154,29 +2154,35 @@ MCCASBuilder::mergeMCFragmentContents(const MCSection *Section,
2154
2154
return mergedData;
2155
2155
for (const MCFragment &Fragment : *Section) {
2156
2156
if (Fragment.getKind () == MCFragment::FT_Dwarf)
2157
- if (IsDebugLineSection)
2157
+ if (IsDebugLineSection) {
2158
2158
llvm::append_range (mergedData, Fragment.getContents ());
2159
- else
2159
+ llvm::append_range (mergedData, Fragment.getVarContents ());
2160
+ } else
2160
2161
return createStringError (
2161
2162
inconvertibleErrorCode (),
2162
2163
" Invalid MCFragment::FT_Dwarf type in a non debug line section" );
2163
2164
else if (const auto *CVDefRangeFragment =
2164
- dyn_cast<MCCVDefRangeFragment>(&Fragment))
2165
+ dyn_cast<MCCVDefRangeFragment>(&Fragment)) {
2165
2166
llvm::append_range (mergedData, CVDefRangeFragment->getContents ());
2167
+ llvm::append_range (mergedData, CVDefRangeFragment->getVarContents ());
2168
+ }
2169
+
2166
2170
else if (const auto *CVInlineLineTableFragment =
2167
- dyn_cast<MCCVInlineLineTableFragment>(&Fragment))
2171
+ dyn_cast<MCCVInlineLineTableFragment>(&Fragment)) {
2168
2172
llvm::append_range (mergedData, CVInlineLineTableFragment->getContents ());
2169
- else if (Fragment.getKind () == MCFragment::FT_Align) {
2173
+ llvm::append_range (mergedData,
2174
+ CVInlineLineTableFragment->getVarContents ());
2175
+ } else if (Fragment.getKind () == MCFragment::FT_Align) {
2170
2176
auto FragmentSize = Asm.computeFragmentSize (Fragment);
2171
2177
raw_svector_ostream OS (mergedData);
2172
2178
if (auto E = writeAlignFragment (*this , Fragment, OS, FragmentSize))
2173
2179
return std::move (E);
2174
- } else if (Fragment. getFixedSize () != 0 )
2175
- llvm::append_range (mergedData, Fragment.getContents ());
2176
- else
2177
- // All other fragment types can be considered empty, see
2178
- // getFragmentContents() for all fragments that have contents.
2179
- continue ;
2180
+ } else {
2181
+ if ( Fragment.getFixedSize () != 0 )
2182
+ llvm::append_range (mergedData, Fragment. getContents ());
2183
+ if (Fragment. getVarSize () != 0 )
2184
+ llvm::append_range (mergedData, Fragment. getVarContents ());
2185
+ }
2180
2186
}
2181
2187
return mergedData;
2182
2188
}
0 commit comments