summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPirama Arumuga Nainar <pirama@google.com>2019-01-14 10:59:57 -0800
committerPirama Arumuga Nainar <pirama@google.com>2019-01-14 10:59:57 -0800
commit248971e9334f7a1b5e8b88db16049bfc21f558cb (patch)
tree42bf3fb80a4cc9937949fdfcb53279152197552a
parent19438310aa4421ec88e9da9e8f41bdcd5009fa93 (diff)
parent307bb62985575b2e3216a8cfd7e122e0574f33a9 (diff)
downloadlibcxxabi-248971e9334f7a1b5e8b88db16049bfc21f558cb.tar.gz
Merge 307bb62 for LLVM update to 349610
Change-Id: I171a8d418e753fd4e96a9e58ae14ebf1a20f3979
-rw-r--r--cmake/Modules/HandleCompilerRT.cmake3
-rw-r--r--src/cxa_demangle.cpp2
-rw-r--r--src/demangle/ItaniumDemangle.h6
-rw-r--r--src/demangle/Utility.h4
-rw-r--r--src/stdlib_exception.cpp30
5 files changed, 6 insertions, 39 deletions
diff --git a/cmake/Modules/HandleCompilerRT.cmake b/cmake/Modules/HandleCompilerRT.cmake
index 945de58..1f95327 100644
--- a/cmake/Modules/HandleCompilerRT.cmake
+++ b/cmake/Modules/HandleCompilerRT.cmake
@@ -8,6 +8,9 @@ function(find_compiler_rt_library name dest)
if (CMAKE_CXX_COMPILER_ID MATCHES Clang AND CMAKE_CXX_COMPILER_TARGET)
list(APPEND CLANG_COMMAND "--target=${CMAKE_CXX_COMPILER_TARGET}")
endif()
+ get_property(LIBCXXABI_CXX_FLAGS CACHE CMAKE_CXX_FLAGS PROPERTY VALUE)
+ string(REPLACE " " ";" LIBCXXABI_CXX_FLAGS "${LIBCXXABI_CXX_FLAGS}")
+ list(APPEND CLANG_COMMAND ${LIBCXXABI_CXX_FLAGS})
execute_process(
COMMAND ${CLANG_COMMAND}
RESULT_VARIABLE HAD_ERROR
diff --git a/src/cxa_demangle.cpp b/src/cxa_demangle.cpp
index 69fdca4..f227add 100644
--- a/src/cxa_demangle.cpp
+++ b/src/cxa_demangle.cpp
@@ -352,7 +352,7 @@ __cxa_demangle(const char *MangledName, char *Buf, size_t *N, int *Status) {
if (AST == nullptr)
InternalStatus = demangle_invalid_mangled_name;
- else if (initializeOutputStream(Buf, N, S, 1024))
+ else if (!initializeOutputStream(Buf, N, S, 1024))
InternalStatus = demangle_memory_alloc_failure;
else {
assert(Parser.ForwardTemplateRefs.empty());
diff --git a/src/demangle/ItaniumDemangle.h b/src/demangle/ItaniumDemangle.h
index f992645..9e9d183 100644
--- a/src/demangle/ItaniumDemangle.h
+++ b/src/demangle/ItaniumDemangle.h
@@ -2162,9 +2162,6 @@ template <typename Derived, typename Alloc> struct AbstractManglingParser {
// conversion operator's type, and are resolved in the enclosing <encoding>.
PODSmallVector<ForwardTemplateReference *, 4> ForwardTemplateRefs;
- void (*TypeCallback)(void *, const char *) = nullptr;
- void *TypeCallbackContext = nullptr;
-
bool TryToParseTemplateArgs = true;
bool PermitForwardTemplateReferences = false;
bool ParsingLambdaParams = false;
@@ -3458,9 +3455,6 @@ template <typename Derived, typename Alloc>
Node *AbstractManglingParser<Derived, Alloc>::parseType() {
Node *Result = nullptr;
- if (TypeCallback != nullptr)
- TypeCallback(TypeCallbackContext, First);
-
switch (look()) {
// ::= <qualified-type>
case 'r':
diff --git a/src/demangle/Utility.h b/src/demangle/Utility.h
index 8611376..b5e9b5e 100644
--- a/src/demangle/Utility.h
+++ b/src/demangle/Utility.h
@@ -176,13 +176,13 @@ inline bool initializeOutputStream(char *Buf, size_t *N, OutputStream &S,
if (Buf == nullptr) {
Buf = static_cast<char *>(std::malloc(InitSize));
if (Buf == nullptr)
- return true;
+ return false;
BufferSize = InitSize;
} else
BufferSize = *N;
S.reset(Buf, BufferSize);
- return false;
+ return true;
}
} // namespace
diff --git a/src/stdlib_exception.cpp b/src/stdlib_exception.cpp
index 6c09102..0308e16 100644
--- a/src/stdlib_exception.cpp
+++ b/src/stdlib_exception.cpp
@@ -69,34 +69,4 @@ bad_array_new_length::what() const _NOEXCEPT
return "bad_array_new_length";
}
-// bad_array_length
-
-#ifndef _LIBCPP_BAD_ARRAY_LENGTH_DEFINED
-
-class _LIBCPP_EXCEPTION_ABI bad_array_length
- : public bad_alloc
-{
-public:
- bad_array_length() _NOEXCEPT;
- virtual ~bad_array_length() _NOEXCEPT;
- virtual const char* what() const _NOEXCEPT;
-};
-
-#endif // _LIBCPP_BAD_ARRAY_LENGTH_DEFINED
-
-bad_array_length::bad_array_length() _NOEXCEPT
-{
-}
-
-bad_array_length::~bad_array_length() _NOEXCEPT
-{
-}
-
-const char*
-bad_array_length::what() const _NOEXCEPT
-{
- return "bad_array_length";
-}
-
-
} // std