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 
165ffd83dbSDimitry Andric uint64_t OutputSection::getSegmentOffset() const {
17*fe6060f1SDimitry Andric   return addr - parent->addr;
18*fe6060f1SDimitry Andric }
19*fe6060f1SDimitry Andric 
20*fe6060f1SDimitry Andric void OutputSection::assignAddressesToStartEndSymbols() {
21*fe6060f1SDimitry Andric   for (Defined *d : sectionStartSymbols)
22*fe6060f1SDimitry Andric     d->value = addr;
23*fe6060f1SDimitry Andric   for (Defined *d : sectionEndSymbols)
24*fe6060f1SDimitry Andric     d->value = addr + getSize();
255ffd83dbSDimitry Andric }
26