blob: ad99eb9bae9ba695fbaf58665099dd26387ec801 [file] [log] [blame]
Rui Ueyama93c9af42016-06-29 08:01:32 +00001//===- Strings.h ------------------------------------------------*- C++ -*-===//
2//
3// The LLVM Linker
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLD_COFF_STRINGS_H
11#define LLD_COFF_STRINGS_H
12
13#include "lld/Core/LLVM.h"
George Rimarc91930a2016-09-02 21:17:20 +000014#include "llvm/Support/Regex.h"
Rui Ueyama93c9af42016-06-29 08:01:32 +000015#include <vector>
16
17namespace lld {
18namespace elf {
George Rimarc91930a2016-09-02 21:17:20 +000019llvm::Regex compileGlobPatterns(ArrayRef<StringRef> V);
20bool hasWildcard(StringRef S);
Rui Ueyama93c9af42016-06-29 08:01:32 +000021std::vector<uint8_t> parseHex(StringRef S);
Rui Ueyamafbbde542016-06-29 09:08:02 +000022bool isValidCIdentifier(StringRef S);
Rui Ueyamaf4d93382016-07-07 23:04:15 +000023
24// Returns a demangled C++ symbol name. If Name is not a mangled
25// name or the system does not provide __cxa_demangle function,
26// it returns an unmodified string.
27std::string demangle(StringRef Name);
Rui Ueyama93c9af42016-06-29 08:01:32 +000028}
29}
30
31#endif