blob: e08423a0246da7ec9fb907f5f2d064fa28949702 [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);
George Rimarcd574a52016-09-09 14:35:36 +000023StringRef unquote(StringRef S);
Rui Ueyamaf4d93382016-07-07 23:04:15 +000024
25// Returns a demangled C++ symbol name. If Name is not a mangled
26// name or the system does not provide __cxa_demangle function,
27// it returns an unmodified string.
28std::string demangle(StringRef Name);
Rui Ueyama93c9af42016-06-29 08:01:32 +000029}
30}
31
32#endif