diff options
| author | 2017-01-24 08:32:59 +0000 | |
|---|---|---|
| committer | 2017-01-24 08:32:59 +0000 | |
| commit | 53d771aafdbe5b919f264f53cba3788e2c4cffd2 (patch) | |
| tree | 7eca39498be0ff1e3a6daf583cd9ca5886bb2636 /gnu/llvm/lib/Support/ARMBuildAttrs.cpp | |
| parent | In preparation of compiling our kernels with -ffreestanding, explicitly map (diff) | |
| download | wireguard-openbsd-53d771aafdbe5b919f264f53cba3788e2c4cffd2.tar.xz wireguard-openbsd-53d771aafdbe5b919f264f53cba3788e2c4cffd2.zip | |
Import LLVM 4.0.0 rc1 including clang and lld to help the current
development effort on OpenBSD/arm64.
Diffstat (limited to 'gnu/llvm/lib/Support/ARMBuildAttrs.cpp')
| -rw-r--r-- | gnu/llvm/lib/Support/ARMBuildAttrs.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/gnu/llvm/lib/Support/ARMBuildAttrs.cpp b/gnu/llvm/lib/Support/ARMBuildAttrs.cpp index 6d34f76f0c2..134ef8b587b 100644 --- a/gnu/llvm/lib/Support/ARMBuildAttrs.cpp +++ b/gnu/llvm/lib/Support/ARMBuildAttrs.cpp @@ -15,7 +15,7 @@ using namespace llvm; namespace { const struct { ARMBuildAttrs::AttrType Attr; - const char *TagName; + StringRef TagName; } ARMAttributeTags[] = { { ARMBuildAttrs::File, "Tag_File" }, { ARMBuildAttrs::Section, "Tag_Section" }, @@ -78,17 +78,23 @@ StringRef AttrTypeAsString(unsigned Attr, bool HasTagPrefix) { StringRef AttrTypeAsString(AttrType Attr, bool HasTagPrefix) { for (unsigned TI = 0, TE = sizeof(ARMAttributeTags) / sizeof(*ARMAttributeTags); TI != TE; ++TI) - if (ARMAttributeTags[TI].Attr == Attr) - return ARMAttributeTags[TI].TagName + (HasTagPrefix ? 0 : 4); + if (ARMAttributeTags[TI].Attr == Attr) { + auto TagName = ARMAttributeTags[TI].TagName; + return HasTagPrefix ? TagName : TagName.drop_front(4); + } return ""; } int AttrTypeFromString(StringRef Tag) { bool HasTagPrefix = Tag.startswith("Tag_"); - for (unsigned TI = 0, TE = sizeof(ARMAttributeTags) / sizeof(*ARMAttributeTags); - TI != TE; ++TI) - if (StringRef(ARMAttributeTags[TI].TagName + (HasTagPrefix ? 0 : 4)) == Tag) + for (unsigned TI = 0, + TE = sizeof(ARMAttributeTags) / sizeof(*ARMAttributeTags); + TI != TE; ++TI) { + auto TagName = ARMAttributeTags[TI].TagName; + if (TagName.drop_front(HasTagPrefix ? 0 : 4) == Tag) { return ARMAttributeTags[TI].Attr; + } + } return -1; } } |
