summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang/CXString.cpp
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2015-11-12 03:57:16 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2015-11-12 03:57:16 +0000
commit5d92eaeb17f9b3b384a9d62036ee9d81134d2762 (patch)
treeb7258c534328986f4abffbcbfa9016ed92e4b6a6 /clang/tools/libclang/CXString.cpp
parent2af10e2eed41b8d110f905f726e4467bb03e6ed1 (diff)
downloadbcm5719-llvm-5d92eaeb17f9b3b384a9d62036ee9d81134d2762.tar.gz
bcm5719-llvm-5d92eaeb17f9b3b384a9d62036ee9d81134d2762.zip
libclang: add new StringSet type
This allows the return of a set of CXStrings from libclang. This is setup work for an upcoming change to permit returning multiple mangled symbols. llvm-svn: 252852
Diffstat (limited to 'clang/tools/libclang/CXString.cpp')
-rw-r--r--clang/tools/libclang/CXString.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/tools/libclang/CXString.cpp b/clang/tools/libclang/CXString.cpp
index dec8ebcd98e..ca9989bc21c 100644
--- a/clang/tools/libclang/CXString.cpp
+++ b/clang/tools/libclang/CXString.cpp
@@ -112,6 +112,15 @@ CXString createCXString(CXStringBuf *buf) {
return Str;
}
+CXStringSet *createSet(const std::vector<std::string> &Strings) {
+ CXStringSet *Set = new CXStringSet;
+ Set->Count = Strings.size();
+ Set->Strings = new CXString[Set->Count];
+ for (unsigned SI = 0, SE = Set->Count; SI < SE; ++SI)
+ Set->Strings[SI] = createDup(Strings[SI]);
+ return Set;
+}
+
//===----------------------------------------------------------------------===//
// String pools.
@@ -175,5 +184,11 @@ void clang_disposeString(CXString string) {
break;
}
}
+
+void clang_disposeStringSet(CXStringSet *set) {
+ delete[] set->Strings;
+ delete set;
+}
+
} // end: extern "C"
OpenPOWER on IntegriCloud