Patchwork [v3] A couple of small fixes

login
register
mail settings
Submitter Paolo Carlini
Date Nov. 6, 2012, 10:45 a.m.
Message ID <5098EA59.8010807@oracle.com>
Download mbox | patch
Permalink /patch/197459/
State New
Headers show

Comments

Paolo Carlini - Nov. 6, 2012, 10:45 a.m.
Hi,

for issues I noticed while working on debug-mode for std::array: avoid 
the inclusion of <cstddef> in two places (in v3 we never include it); 
fix the new check added by Florian vs -fno-exceptions.

Tested x86_64-linux.

Thanks,
Paolo.

///////////////////////
2012-11-06  Paolo Carlini  <paolo.carlini@oracle.com>
  
	* include/bits/atomic_base.h: Don't include <cstddef>, use nullptr.
	* include/std/atomic: Likewise.
	* include/tr2/dynamic_bitset: Likewise.

	* libsupc++/vec.cc (compute_size(std::size_t, std::size_t,
	std::size_t)): Fix for -fno-exceptions.

Patch

Index: include/bits/atomic_base.h
===================================================================
--- include/bits/atomic_base.h	(revision 193210)
+++ include/bits/atomic_base.h	(working copy)
@@ -1,6 +1,6 @@ 
 // -*- C++ -*- header.
 
-// Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+// Copyright (C) 2008-2012 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -35,7 +35,6 @@ 
 #include <bits/c++config.h>
 #include <stdbool.h>
 #include <stdint.h>
-#include <cstddef>
 #include <bits/atomic_lockfree_defines.h>
 
 namespace std _GLIBCXX_VISIBILITY(default)
@@ -423,11 +422,11 @@ 
 
       bool
       is_lock_free() const noexcept
-      { return __atomic_is_lock_free(sizeof(_M_i), NULL); }
+      { return __atomic_is_lock_free(sizeof(_M_i), nullptr); }
 
       bool
       is_lock_free() const volatile noexcept
-      { return __atomic_is_lock_free(sizeof(_M_i), NULL); }
+      { return __atomic_is_lock_free(sizeof(_M_i), nullptr); }
 
       void
       store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept
@@ -717,11 +716,11 @@ 
 
       bool
       is_lock_free() const noexcept
-      { return __atomic_is_lock_free(_M_type_size(1), NULL); }
+      { return __atomic_is_lock_free(_M_type_size(1), nullptr); }
 
       bool
       is_lock_free() const volatile noexcept
-      { return __atomic_is_lock_free(_M_type_size(1), NULL); }
+      { return __atomic_is_lock_free(_M_type_size(1), nullptr); }
 
       void
       store(__pointer_type __p,
Index: include/std/atomic
===================================================================
--- include/std/atomic	(revision 193210)
+++ include/std/atomic	(working copy)
@@ -1,6 +1,6 @@ 
 // -*- C++ -*- header.
 
-// Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+// Copyright (C) 2008-2012 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -184,11 +184,11 @@ 
 
       bool
       is_lock_free() const noexcept
-      { return __atomic_is_lock_free(sizeof(_M_i), NULL); }
+      { return __atomic_is_lock_free(sizeof(_M_i), nullptr); }
 
       bool
       is_lock_free() const volatile noexcept
-      { return __atomic_is_lock_free(sizeof(_M_i), NULL); }
+      { return __atomic_is_lock_free(sizeof(_M_i), nullptr); }
 
       void
       store(_Tp __i, memory_order _m = memory_order_seq_cst) noexcept
Index: include/tr2/dynamic_bitset
===================================================================
--- include/tr2/dynamic_bitset	(revision 193210)
+++ include/tr2/dynamic_bitset	(working copy)
@@ -33,7 +33,6 @@ 
 
 #include <limits>
 #include <vector>
-#include <cstddef> // For size_t
 #include <string>
 #include <memory> // For std::allocator
 #include <bits/functexcept.h>   // For invalid_argument, out_of_range,
Index: libsupc++/vec.cc
===================================================================
--- libsupc++/vec.cc	(revision 193210)
+++ libsupc++/vec.cc	(working copy)
@@ -28,6 +28,7 @@ 
 #include <cxxabi.h>
 #include <new>
 #include <exception>
+#include <cstdlib>
 #include <bits/exception_defines.h>
 #include "unwind-cxx.h"
 
@@ -65,10 +66,18 @@ 
 			     std::size_t padding_size)
     {
       if (element_size && element_count > std::size_t(-1) / element_size)
+#ifdef __EXCEPTIONS
 	throw std::bad_alloc();
+#else
+        std::abort();
+#endif
       std::size_t size = element_count * element_size;
       if (size + padding_size < size)
+#ifdef __EXCEPTIONS
 	throw std::bad_alloc();
+#else
+        std::abort();
+#endif
       return size + padding_size;
     }
   }