brintos

brintos / llvm-project-archived public Read only

0
0
Text · 973 B · 4ddfcc3 Raw
36 lines · cpp
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-exception6//7//===----------------------------------------------------------------------===//8 9#include "clang/Basic/MakeSupport.h"10 11void 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 backslashes17      for (int j = i - 1; j >= 0 && Target[j] == '\\'; --j)18        Res.push_back('\\');19 20      // Escape the space/tab21      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