Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===-- ELFAttributes.h - ELF Attributes ------------------------*- C++ -*-===//
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
#ifndef LLVM_SUPPORT_ELFATTRIBUTES_H
10
#define LLVM_SUPPORT_ELFATTRIBUTES_H
11
 
12
#include "llvm/ADT/ArrayRef.h"
13
#include "llvm/ADT/StringRef.h"
14
#include <optional>
15
 
16
namespace llvm {
17
 
18
struct TagNameItem {
19
  unsigned attr;
20
  StringRef tagName;
21
};
22
 
23
using TagNameMap = ArrayRef<TagNameItem>;
24
 
25
namespace ELFAttrs {
26
 
27
enum AttrType : unsigned { File = 1, Section = 2, Symbol = 3 };
28
 
29
StringRef attrTypeAsString(unsigned attr, TagNameMap tagNameMap,
30
                           bool hasTagPrefix = true);
31
std::optional<unsigned> attrTypeFromString(StringRef tag, TagNameMap tagNameMap);
32
 
33
// Magic numbers for ELF attributes.
34
enum AttrMagic { Format_Version = 0x41 };
35
 
36
} // namespace ELFAttrs
37
} // namespace llvm
38
#endif