Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/clang/lib/Basic/MakeSupport.cpp
35233 views
1
//===-- MakeSuport.cpp --------------------------------------------------*-===//
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
#include "clang/Basic/MakeSupport.h"
10
11
void clang::quoteMakeTarget(StringRef Target, SmallVectorImpl<char> &Res) {
12
for (unsigned i = 0, e = Target.size(); i != e; ++i) {
13
switch (Target[i]) {
14
case ' ':
15
case '\t':
16
// Escape the preceding backslashes
17
for (int j = i - 1; j >= 0 && Target[j] == '\\'; --j)
18
Res.push_back('\\');
19
20
// Escape the space/tab
21
Res.push_back('\\');
22
break;
23
case '$':
24
Res.push_back('$');
25
break;
26
case '#':
27
Res.push_back('\\');
28
break;
29
default:
30
break;
31
}
32
33
Res.push_back(Target[i]);
34
}
35
}
36
37