15ffd83dbSDimitry Andric //===- OutputSection.cpp --------------------------------------------------===//
25ffd83dbSDimitry Andric //
35ffd83dbSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
45ffd83dbSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
55ffd83dbSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
65ffd83dbSDimitry Andric //
75ffd83dbSDimitry Andric //===----------------------------------------------------------------------===//
85ffd83dbSDimitry Andric 
95ffd83dbSDimitry Andric #include "OutputSection.h"
105ffd83dbSDimitry Andric #include "OutputSegment.h"
115ffd83dbSDimitry Andric 
125ffd83dbSDimitry Andric using namespace llvm;
135ffd83dbSDimitry Andric using namespace lld;
145ffd83dbSDimitry Andric using namespace lld::macho;
155ffd83dbSDimitry Andric 
getSegmentOffset() const16*81ad6265SDimitry Andric uint64_t OutputSection::getSegmentOffset() const { return addr - parent->addr; }
17fe6060f1SDimitry Andric 
assignAddressesToStartEndSymbols()18fe6060f1SDimitry Andric void OutputSection::assignAddressesToStartEndSymbols() {
19fe6060f1SDimitry Andric   for (Defined *d : sectionStartSymbols)
20fe6060f1SDimitry Andric     d->value = addr;
21fe6060f1SDimitry Andric   for (Defined *d : sectionEndSymbols)
22fe6060f1SDimitry Andric     d->value = addr + getSize();
235ffd83dbSDimitry Andric }
24