xref: /llvm-project/llvm/lib/DebugInfo/PDB/DIA/DIALineNumber.cpp (revision 2946cd701067404b99c39fb29dc9c74bd7193eb3)
1cffff26bSZachary Turner //===- DIALineNumber.cpp - DIA implementation of IPDBLineNumber -*- C++ -*-===//
2cffff26bSZachary Turner //
3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6cffff26bSZachary Turner //
7cffff26bSZachary Turner //===----------------------------------------------------------------------===//
8cffff26bSZachary Turner 
9cffff26bSZachary Turner #include "llvm/DebugInfo/PDB/DIA/DIALineNumber.h"
10cffff26bSZachary Turner 
11cffff26bSZachary Turner using namespace llvm;
12ec28fc34SZachary Turner using namespace llvm::pdb;
13cffff26bSZachary Turner 
DIALineNumber(CComPtr<IDiaLineNumber> DiaLineNumber)14cffff26bSZachary Turner DIALineNumber::DIALineNumber(CComPtr<IDiaLineNumber> DiaLineNumber)
15cffff26bSZachary Turner     : LineNumber(DiaLineNumber) {}
16cffff26bSZachary Turner 
getLineNumber() const17cffff26bSZachary Turner uint32_t DIALineNumber::getLineNumber() const {
18cffff26bSZachary Turner   DWORD Line = 0;
19cffff26bSZachary Turner   return (S_OK == LineNumber->get_lineNumber(&Line)) ? Line : 0;
20cffff26bSZachary Turner }
21cffff26bSZachary Turner 
getLineNumberEnd() const22cffff26bSZachary Turner uint32_t DIALineNumber::getLineNumberEnd() const {
23cffff26bSZachary Turner   DWORD LineEnd = 0;
24cffff26bSZachary Turner   return (S_OK == LineNumber->get_lineNumberEnd(&LineEnd)) ? LineEnd : 0;
25cffff26bSZachary Turner }
26cffff26bSZachary Turner 
getColumnNumber() const27cffff26bSZachary Turner uint32_t DIALineNumber::getColumnNumber() const {
28cffff26bSZachary Turner   DWORD Column = 0;
29cffff26bSZachary Turner   return (S_OK == LineNumber->get_columnNumber(&Column)) ? Column : 0;
30cffff26bSZachary Turner }
31cffff26bSZachary Turner 
getColumnNumberEnd() const32cffff26bSZachary Turner uint32_t DIALineNumber::getColumnNumberEnd() const {
33cffff26bSZachary Turner   DWORD ColumnEnd = 0;
34cffff26bSZachary Turner   return (S_OK == LineNumber->get_columnNumberEnd(&ColumnEnd)) ? ColumnEnd : 0;
35cffff26bSZachary Turner }
36cffff26bSZachary Turner 
getAddressSection() const37cffff26bSZachary Turner uint32_t DIALineNumber::getAddressSection() const {
38cffff26bSZachary Turner   DWORD Section = 0;
39cffff26bSZachary Turner   return (S_OK == LineNumber->get_addressSection(&Section)) ? Section : 0;
40cffff26bSZachary Turner }
41cffff26bSZachary Turner 
getAddressOffset() const42cffff26bSZachary Turner uint32_t DIALineNumber::getAddressOffset() const {
43cffff26bSZachary Turner   DWORD Offset = 0;
44cffff26bSZachary Turner   return (S_OK == LineNumber->get_addressOffset(&Offset)) ? Offset : 0;
45cffff26bSZachary Turner }
46cffff26bSZachary Turner 
getRelativeVirtualAddress() const47cffff26bSZachary Turner uint32_t DIALineNumber::getRelativeVirtualAddress() const {
48cffff26bSZachary Turner   DWORD RVA = 0;
49cffff26bSZachary Turner   return (S_OK == LineNumber->get_relativeVirtualAddress(&RVA)) ? RVA : 0;
50cffff26bSZachary Turner }
51cffff26bSZachary Turner 
getVirtualAddress() const52cffff26bSZachary Turner uint64_t DIALineNumber::getVirtualAddress() const {
53cffff26bSZachary Turner   ULONGLONG Addr = 0;
54cffff26bSZachary Turner   return (S_OK == LineNumber->get_virtualAddress(&Addr)) ? Addr : 0;
55cffff26bSZachary Turner }
56cffff26bSZachary Turner 
getLength() const57cffff26bSZachary Turner uint32_t DIALineNumber::getLength() const {
58cffff26bSZachary Turner   DWORD Length = 0;
59cffff26bSZachary Turner   return (S_OK == LineNumber->get_length(&Length)) ? Length : 0;
60cffff26bSZachary Turner }
61cffff26bSZachary Turner 
getSourceFileId() const62cffff26bSZachary Turner uint32_t DIALineNumber::getSourceFileId() const {
63cffff26bSZachary Turner   DWORD Id = 0;
64cffff26bSZachary Turner   return (S_OK == LineNumber->get_sourceFileId(&Id)) ? Id : 0;
65cffff26bSZachary Turner }
66cffff26bSZachary Turner 
getCompilandId() const67cffff26bSZachary Turner uint32_t DIALineNumber::getCompilandId() const {
68cffff26bSZachary Turner   DWORD Id = 0;
69cffff26bSZachary Turner   return (S_OK == LineNumber->get_compilandId(&Id)) ? Id : 0;
70cffff26bSZachary Turner }
71cffff26bSZachary Turner 
isStatement() const72cffff26bSZachary Turner bool DIALineNumber::isStatement() const {
73cffff26bSZachary Turner   BOOL Statement = 0;
74cffff26bSZachary Turner   return (S_OK == LineNumber->get_statement(&Statement)) ? Statement : false;
75cffff26bSZachary Turner }
76