We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents b0f7e7d + 6687fc9 commit a7976f7Copy full SHA for a7976f7
42 files changed
.gitignore
@@ -19,6 +19,7 @@ bin/env_check
19
libuClibc++*.so
20
libuClibc++*.so.0
21
include/system_configuration.h
22
+include/bits/
23
24
#
25
# Debugging files
src/abi/libgcc_eh/Makefile.in
@@ -4,7 +4,7 @@ OBJS = $(call list-archive-members,$(LIBGCC_EH))
4
libgcc_eh-$(IMPORT_LIBGCC_EH) := $(OBJS)
5
6
LIBGCC_EH_VAR := $(call variablify,$(LIBGCC_EH))
7
-LIBGCC_EH_DEP := $(LIBGCC_EH_OUT).$(LIBGCC_EH_VAR).dep
+LIBGCC_EH_DEP := $(LIBGCC_EH_OUT).$(call print-hash,$(LIBGCC_EH_VAR)).dep
8
9
ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
10
-include $(LIBGCC_EH_DEP)
@@ -17,7 +17,7 @@ endif
17
$(LIBGCC_EH_DEP): $(LIBGCC_EH)
18
$(Q)$(RM) $(LIBGCC_EH_OUT).*dep $(LIBGCC_EH_OUT)*.o
$(Q)$(if $(LIBGCC_EH),(cd $(LIBGCC_EH_OUT) && $(AR) x $(LIBGCC_EH)))
- $(Q)echo "libgcc_eh-y := \$$(addprefix \$$(LIBGCC_EH_OUT),$(libgcc_eh-y))" > $@
+ $(Q)printf "# %s\n\n%s\n" "$(LIBGCC_EH)" "libgcc_eh-y := \$$(addprefix \$$(LIBGCC_EH_OUT),$(libgcc_eh-y))" > $@
CLEAN_src/abi/libgcc_eh: ;
DISTCLEAN_src/abi/libgcc_eh:
src/abi/libsupc/Makefile.in
@@ -5,7 +5,7 @@ OBJS-OMIT = $(filter new_op%.o del_op%.o pure.o new_handler.o eh_alloc.o eh_glob
libsupc-$(IMPORT_LIBSUP) := $(filter-out $(OBJS-OMIT),$(OBJS))
LIBSUP_VAR := $(call variablify,$(LIBSUP))
-LIBSUP_DEP :=$(LIBSUPC_OUT).$(LIBSUP_VAR).dep
+LIBSUP_DEP := $(LIBSUPC_OUT).$(call print-hash,$(LIBSUP_VAR)).dep
11
-include $(LIBSUP_DEP)
$(LIBSUP_DEP): $(LIBSUP) $(LIBSUPC_OUT)Makefile.in
$(Q)$(RM) $(LIBSUPC_OUT).*dep $(LIBSUPC_OUT)*.o
$(Q)$(if $(LIBSUP),(cd $(LIBSUPC_OUT) && $(AR) x $(LIBSUP) && $(RM) $(OBJS-OMIT)))
- $(Q)echo "libsupc-y := \$$(addprefix \$$(LIBSUPC_OUT),$(libsupc-y))" > $@
+ $(Q)printf "# %s\n\n%s\n" "$(LIBSUP)" "libsupc-y := \$$(addprefix \$$(LIBSUPC_OUT),$(libsupc-y))" > $@
CLEAN_src/abi/libsupc: ;
DISTCLEAN_src/abi/libsupc:
src/associative_base
@@ -200,8 +200,7 @@ public:
200
}
201
void erase(iterator first, iterator last){
202
while(first != last){
203
- backing.erase(first.base_iterator());
204
- ++first;
+ first = backing.erase(first.base_iterator());
205
206
207
src/basic_definitions
@@ -39,6 +39,28 @@
39
#define __UCLIBCXX_NORETURN
40
#endif
41
42
+#ifdef __GCC__
43
+# ifndef _UCXX_NOTHROW
44
+# ifndef __cplusplus
45
+# define _UCXX_NOTHROW __attribute__((__nothrow__))
46
+# endif
47
48
+#endif
49
+#ifdef __cplusplus
50
+# if __cplusplus >= 201103L
51
+# define _UCXX_NOEXCEPT noexcept
52
+# define _UCXX_USE_NOEXCEPT noexcept
53
+# define _UCXX_THROW(_EXCEPTION)
54
+# else
55
+# define _UCXX_NOEXCEPT
56
+# define _UCXX_USE_NOEXCEPT throw()
57
+# define _UCXX_THROW(_EXCEPTION) throw(_EXCEPTION)
58
59
60
+# define _UCXX_NOTHROW _UCXX_USE_NOEXCEPT
61
62
63
+
64
#ifdef __UCLIBCXX_HAS_TLS__
65
#define __UCLIBCXX_TLS __thread
66
#else
src/char_traits
@@ -52,7 +52,7 @@ namespace std{
static char_type to_char_type(const int_type & i);
inline static int_type to_int_type(const char_type & c){
- return (short int)(unsigned char)c;
+ return static_cast<short int>(static_cast<unsigned char>(c));
inline static bool eq_int_type(const int_type & a, const int_type & b){
@@ -71,7 +71,7 @@ namespace std{
71
72
73
inline static char_type* move(char_type* s1, const char_type* s2, size_t n){
74
- return (char*) memmove(s1, s2, n);
+ return static_cast<char*>(memmove(s1, s2, n));
75
76
77
inline static char_type* copy(char_type* s1, const char_type* s2, size_t n){
@@ -82,7 +82,7 @@ namespace std{
82
83
84
inline static char_type* assign(char_type* s, size_t n, char_type a){
85
- return (char *)memset(s, a, n);
+ return static_cast<char *>(memset(s, a, n));
86
87
88
inline static int compare(const char_type* s1, const char_type* s2, size_t n){
src/cstdio
@@ -21,6 +21,15 @@
#ifndef __HEADER_CSTDIO
#define __HEADER_CSTDIO 1
+#undef clearerr
+#undef feof
26
+#undef ferror
27
+#undef fgetc
28
+#undef fputc
29
+#undef getc
30
+#undef getchar
31
+#undef putc
32
+#undef putchar
33
34
namespace std{
35
using ::FILE;
@@ -48,6 +57,7 @@ namespace std{
using ::getc;
using ::getchar;
#if __cplusplus <= 201103L
+ // LWG 2249
using ::gets;
using ::perror;
@@ -64,7 +74,9 @@ namespace std{
using ::sprintf;
using ::sscanf;
using ::tmpfile;
+#ifdef _GLIBCXX_USE_TMPNAM
67
78
using ::tmpnam;
79
68
80
using ::ungetc;
69
81
using ::vfprintf;
70
using ::vprintf;
src/del_op.cpp
@@ -24,7 +24,7 @@
#include <cstdlib>
#include <func_exception>
-_UCXXEXPORT void operator delete(void* ptr) throw(){
+_UCXXEXPORT void operator delete(void* ptr) _UCXX_USE_NOEXCEPT{
free(ptr);
src/del_opnt.cpp
@@ -22,7 +22,7 @@
#include "func_exception"
#ifndef NO_NOTHROW
-_UCXXEXPORT void operator delete(void* ptr, const std::nothrow_t& ) throw() {
+_UCXXEXPORT void operator delete(void* ptr, const std::nothrow_t& ) _UCXX_USE_NOEXCEPT {
src/del_ops.cpp
@@ -22,6 +22,6 @@
#include "cstdlib"
-_UCXXEXPORT void operator delete(void* ptr, std::size_t) throw(){
+_UCXXEXPORT void operator delete(void* ptr, std::size_t) _UCXX_USE_NOEXCEPT{
::operator delete (ptr);
0 commit comments