diff --git a/clang/lib/Frontend/LayoutOverrideSource.cpp b/clang/lib/Frontend/LayoutOverrideSource.cpp index f09444deb8d38..f474d4fe8fdcb 100644 --- a/clang/lib/Frontend/LayoutOverrideSource.cpp +++ b/clang/lib/Frontend/LayoutOverrideSource.cpp @@ -152,30 +152,31 @@ LayoutOverrideSource::LayoutOverrideSource(StringRef Filename) { } } - // Check for the base offsets. - Pos = LineStr.find("BaseOffsets: ["); + // Check for the virtual base offsets. + Pos = LineStr.find("VBaseOffsets: ["); if (Pos != StringRef::npos) { - LineStr = LineStr.substr(Pos + strlen("BaseOffsets: [")); + LineStr = LineStr.substr(Pos + strlen("VBaseOffsets: [")); while (!LineStr.empty() && isDigit(LineStr[0])) { unsigned long long Offset = 0; if (parseUnsigned(LineStr, Offset)) - CurrentLayout.BaseOffsets.push_back(CharUnits::fromQuantity(Offset)); + CurrentLayout.VBaseOffsets.push_back(CharUnits::fromQuantity(Offset)); // Skip over this offset, the following comma, and any spaces. LineStr = LineStr.substr(1); while (!LineStr.empty() && isWhitespace(LineStr[0])) LineStr = LineStr.substr(1); } + continue; } - // Check for the virtual base offsets. - Pos = LineStr.find("VBaseOffsets: ["); + // Check for the base offsets. + Pos = LineStr.find("BaseOffsets: ["); if (Pos != StringRef::npos) { - LineStr = LineStr.substr(Pos + strlen("VBaseOffsets: [")); + LineStr = LineStr.substr(Pos + strlen("BaseOffsets: [")); while (!LineStr.empty() && isDigit(LineStr[0])) { unsigned long long Offset = 0; if (parseUnsigned(LineStr, Offset)) - CurrentLayout.VBaseOffsets.push_back(CharUnits::fromQuantity(Offset)); + CurrentLayout.BaseOffsets.push_back(CharUnits::fromQuantity(Offset)); // Skip over this offset, the following comma, and any spaces. LineStr = LineStr.substr(1);