15ffd83dbSDimitry Andric //===- NativeLineNumber.cpp - Native line number implementation -*- C++ -*-===// 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 "llvm/DebugInfo/PDB/Native/NativeLineNumber.h" 105ffd83dbSDimitry Andric 115ffd83dbSDimitry Andric using namespace llvm; 125ffd83dbSDimitry Andric using namespace llvm::pdb; 135ffd83dbSDimitry Andric 145ffd83dbSDimitry Andric NativeLineNumber::NativeLineNumber(const NativeSession &Session, 155ffd83dbSDimitry Andric const codeview::LineInfo Line, 165ffd83dbSDimitry Andric uint32_t ColumnNumber, uint32_t Section, 175ffd83dbSDimitry Andric uint32_t Offset, uint32_t Length, 18*e8d8bef9SDimitry Andric uint32_t SrcFileId, uint32_t CompilandId) 195ffd83dbSDimitry Andric : Session(Session), Line(Line), ColumnNumber(ColumnNumber), 20*e8d8bef9SDimitry Andric Section(Section), Offset(Offset), Length(Length), SrcFileId(SrcFileId), 21*e8d8bef9SDimitry Andric CompilandId(CompilandId) {} 225ffd83dbSDimitry Andric 235ffd83dbSDimitry Andric uint32_t NativeLineNumber::getLineNumber() const { return Line.getStartLine(); } 245ffd83dbSDimitry Andric 255ffd83dbSDimitry Andric uint32_t NativeLineNumber::getLineNumberEnd() const { 265ffd83dbSDimitry Andric return Line.getEndLine(); 275ffd83dbSDimitry Andric } 285ffd83dbSDimitry Andric 295ffd83dbSDimitry Andric uint32_t NativeLineNumber::getColumnNumber() const { return ColumnNumber; } 305ffd83dbSDimitry Andric 315ffd83dbSDimitry Andric uint32_t NativeLineNumber::getColumnNumberEnd() const { return 0; } 325ffd83dbSDimitry Andric 335ffd83dbSDimitry Andric uint32_t NativeLineNumber::getAddressSection() const { return Section; } 345ffd83dbSDimitry Andric 355ffd83dbSDimitry Andric uint32_t NativeLineNumber::getAddressOffset() const { return Offset; } 365ffd83dbSDimitry Andric 375ffd83dbSDimitry Andric uint32_t NativeLineNumber::getRelativeVirtualAddress() const { 385ffd83dbSDimitry Andric return Session.getRVAFromSectOffset(Section, Offset); 395ffd83dbSDimitry Andric } 405ffd83dbSDimitry Andric 415ffd83dbSDimitry Andric uint64_t NativeLineNumber::getVirtualAddress() const { 425ffd83dbSDimitry Andric return Session.getVAFromSectOffset(Section, Offset); 435ffd83dbSDimitry Andric } 445ffd83dbSDimitry Andric 455ffd83dbSDimitry Andric uint32_t NativeLineNumber::getLength() const { return Length; } 465ffd83dbSDimitry Andric 475ffd83dbSDimitry Andric uint32_t NativeLineNumber::getSourceFileId() const { return SrcFileId; } 485ffd83dbSDimitry Andric 49*e8d8bef9SDimitry Andric uint32_t NativeLineNumber::getCompilandId() const { return CompilandId; } 505ffd83dbSDimitry Andric 515ffd83dbSDimitry Andric bool NativeLineNumber::isStatement() const { return Line.isStatement(); } 52