xref: /freebsd/contrib/llvm-project/llvm/lib/MC/MCSymbolXCOFF.cpp (revision bdd1243df58e60e85101c09001d9812a789b6bc4)
1 //===- lib/MC/MCSymbolXCOFF.cpp - XCOFF Code Symbol Representation --------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "llvm/MC/MCSectionXCOFF.h"
10 
11 using namespace llvm;
12 
13 MCSectionXCOFF *MCSymbolXCOFF::getRepresentedCsect() const {
14   assert(RepresentedCsect &&
15          "Trying to get csect representation of this symbol but none was set.");
16   assert(getSymbolTableName().equals(RepresentedCsect->getSymbolTableName()) &&
17          "SymbolTableNames need to be the same for this symbol and its csect "
18          "representation.");
19   return RepresentedCsect;
20 }
21 
22 void MCSymbolXCOFF::setRepresentedCsect(MCSectionXCOFF *C) {
23   assert(C && "Assigned csect should not be null.");
24   assert((!RepresentedCsect || RepresentedCsect == C) &&
25          "Trying to set a csect that doesn't match the one that this symbol is "
26          "already mapped to.");
27   assert(getSymbolTableName().equals(C->getSymbolTableName()) &&
28          "SymbolTableNames need to be the same for this symbol and its csect "
29          "representation.");
30   RepresentedCsect = C;
31 }
32