Try 2 - Remove <cstdlib> include from `<exception>`
authorEric Fiselier <eric@efcs.ca>
Tue, 6 Sep 2016 21:25:27 +0000 (21:25 +0000)
committerEric Fiselier <eric@efcs.ca>
Tue, 6 Sep 2016 21:25:27 +0000 (21:25 +0000)
This patch removes the `<cstdlib>` include from exception where it is no longer
needed. Unlike my previous attempt this patch also adds <cstdlib> where needed
in other headers like <new> and <typeinfo>.

This won't fix the Firefox build issues discussed on IRC but it is more correct
for libc++.

llvm-svn: 280754

libcxx/include/exception
libcxx/include/new
libcxx/include/stdexcept
libcxx/include/typeinfo

index a130bca..686e4ec 100644 (file)
@@ -80,10 +80,6 @@ template <class E> void rethrow_if_nested(const E& e);
 #include <__config>
 #include <cstddef>
 #include <type_traits>
-#if defined(_LIBCPP_NO_EXCEPTIONS)
-#include <cstdio>
-#include <cstdlib>
-#endif
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
index 9520867..936f9ee 100644 (file)
@@ -69,6 +69,9 @@ void  operator delete[](void* ptr, void*) noexcept;
 #include <__config>
 #include <exception>
 #include <cstddef>
+#ifdef _LIBCPP_NO_EXCEPTIONS
+#include <cstdlib>
+#endif
 
 #include <__undef___deallocate>
 
index 684578f..b78d5d6 100644 (file)
@@ -45,6 +45,9 @@ public:
 #include <__config>
 #include <exception>
 #include <iosfwd>  // for string forward decl
+#ifdef _LIBCPP_NO_EXCEPTIONS
+#include <cstdlib>
+#endif
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
index d3155e4..ace6609 100644 (file)
@@ -61,6 +61,9 @@ public:
 #include <exception>
 #include <cstddef>
 #include <cstdint>
+#ifdef _LIBCPP_NO_EXCEPTIONS
+#include <cstdlib>
+#endif
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header