libstdc++: [_GLIBCXX_DEBUG] Make constant evaluation compatible
Cleanup _Safe_iterator and _Safe_local_iterator implementations.
Use base constructor for the special _Unchecked constructor.
Remove intermediate typedefs, use directly the template parameter type
and the base class.
libstdc++-v3/ChangeLog:
* include/debug/safe_iterator.h
(_Safe_iterator::_Iter_base, _Safe_iterator::_Safe_base): Remove.
(_Safe_iterator(const _Safe_iterator&, _Unchecked)): Delegate
to correct base classes
constructors.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator::_Iter_base,
_Safe_local_iterator::_Safe_base): Remove.
(_Safe_local_iterator(const _Safe_local_iterator&,
_Unchecked)): Delegate to the correct
base classes constructors.
Tested under Linux x86_64 _GLIBCXX_DEBUG mode.
François
diff --git a/gcc/testsuite/objc.dg/gnu-api-2-class.m
b/gcc/testsuite/objc.dg/gnu-api-2-class.m
index d11dae0e6dc..c91ac5fd4f4 100644
--- a/gcc/testsuite/objc.dg/gnu-api-2-class.m
+++ b/gcc/testsuite/objc.dg/gnu-api-2-class.m
@@ -87,7 +87,7 @@ log_2_of (unsigned int x)
return result;
}
-int main(int argc, void **args)
+int main(int argc, char **args)
{
/* Functions are tested in alphabetical order. */
diff --git a/gcc/testsuite/objc.dg/gnu-api-2-ivar.m
b/gcc/testsuite/objc.dg/gnu-api-2-ivar.m
index 072d2655bb8..dcd3272ef4e 100644
--- a/gcc/testsuite/objc.dg/gnu-api-2-ivar.m
+++ b/gcc/testsuite/objc.dg/gnu-api-2-ivar.m
@@ -47,7 +47,7 @@
@end
-int main(int argc, void **args)
+int main(int argc, char **args)
{
/* Functions are tested in alphabetical order. */
diff --git a/gcc/testsuite/objc.dg/gnu-api-2-method.m
b/gcc/testsuite/objc.dg/gnu-api-2-method.m
index ea1da8d138f..bd8da218cd8 100644
--- a/gcc/testsuite/objc.dg/gnu-api-2-method.m
+++ b/gcc/testsuite/objc.dg/gnu-api-2-method.m
@@ -49,7 +49,7 @@
@end
-int main(int argc, void **args)
+int main(int argc, char **args)
{
/* Functions are tested in alphabetical order. */
diff --git a/gcc/testsuite/objc.dg/gnu-api-2-objc.m
b/gcc/testsuite/objc.dg/gnu-api-2-objc.m
index e9ec5d7ab94..58d4ea9f1d1 100644
--- a/gcc/testsuite/objc.dg/gnu-api-2-objc.m
+++ b/gcc/testsuite/objc.dg/gnu-api-2-objc.m
@@ -68,7 +68,7 @@ log_2_of (unsigned int x)
return result;
}
-int main(int argc, void **args)
+int main(int argc, char **args)
{
/* Functions are tested in alphabetical order. */
diff --git a/gcc/testsuite/objc.dg/gnu-api-2-objc_msg_lookup.m
b/gcc/testsuite/objc.dg/gnu-api-2-objc_msg_lookup.m
index d417225cdfb..307dade18d5 100644
--- a/gcc/testsuite/objc.dg/gnu-api-2-objc_msg_lookup.m
+++ b/gcc/testsuite/objc.dg/gnu-api-2-objc_msg_lookup.m
@@ -40,7 +40,7 @@
- (int) test { return 11; }
@end
-int main (int argc, void **args)
+int main (int argc, char **args)
{
/* Functions are tested in alphabetical order. */
diff --git a/gcc/testsuite/objc.dg/gnu-api-2-object.m
b/gcc/testsuite/objc.dg/gnu-api-2-object.m
index 20c4342d267..9db012dbc27 100644
--- a/gcc/testsuite/objc.dg/gnu-api-2-object.m
+++ b/gcc/testsuite/objc.dg/gnu-api-2-object.m
@@ -56,7 +56,7 @@
-int main(int argc, void **args)
+int main(int argc, char **args)
{
/* Functions are tested in alphabetical order. */
diff --git a/gcc/testsuite/objc.dg/gnu-api-2-property.m
b/gcc/testsuite/objc.dg/gnu-api-2-property.m
index 0ef4d79f9b3..4fc8d3b0a4e 100644
--- a/gcc/testsuite/objc.dg/gnu-api-2-property.m
+++ b/gcc/testsuite/objc.dg/gnu-api-2-property.m
@@ -41,7 +41,7 @@
@end
-int main(int argc, void **args)
+int main(int argc, char **args)
{
/* Functions are tested in alphabetical order. */
diff --git a/gcc/testsuite/objc.dg/gnu-api-2-protocol.m
b/gcc/testsuite/objc.dg/gnu-api-2-protocol.m
index 682adcd716e..3fc7f1cbaf0 100644
--- a/gcc/testsuite/objc.dg/gnu-api-2-protocol.m
+++ b/gcc/testsuite/objc.dg/gnu-api-2-protocol.m
@@ -51,7 +51,7 @@
@end
-int main(int argc, void **args)
+int main(int argc, char **args)
{
/* Functions are tested in alphabetical order. */
diff --git a/gcc/testsuite/objc.dg/gnu-api-2-resolve-method.m
b/gcc/testsuite/objc.dg/gnu-api-2-resolve-method.m
index 6eaa3dd72a3..e2005b9911d 100644
--- a/gcc/testsuite/objc.dg/gnu-api-2-resolve-method.m
+++ b/gcc/testsuite/objc.dg/gnu-api-2-resolve-method.m
@@ -165,7 +165,7 @@ static int hitCount = 0;
@end
-int main (int argc, void **args)
+int main (int argc, char **args)
{
/* Functions are tested in alphabetical order. */
diff --git a/gcc/testsuite/objc.dg/gnu-api-2-sel.m
b/gcc/testsuite/objc.dg/gnu-api-2-sel.m
index bc581bec2f7..1a721635cc6 100644
--- a/gcc/testsuite/objc.dg/gnu-api-2-sel.m
+++ b/gcc/testsuite/objc.dg/gnu-api-2-sel.m
@@ -63,7 +63,7 @@
- (void) conflictingSelectorMethod { return; }
@end
-int main(int argc, void **args)
+int main(int argc, char **args)
{
/* Functions are tested in alphabetical order. */
diff --git a/gcc/testsuite/objc.dg/gnu-runtime-2.m
b/gcc/testsuite/objc.dg/gnu-runtime-2.m
index 9903d29727c..f34320f5cc9 100644
--- a/gcc/testsuite/objc.dg/gnu-runtime-2.m
+++ b/gcc/testsuite/objc.dg/gnu-runtime-2.m
@@ -22,7 +22,7 @@
-(unsigned int) length { return len; }
@end
-int main(int argc, void **args)
+int main(int argc, char **args)
{
if (strcmp ([@"this is a string" cString], "this is a string"))
abort ();
diff --git a/gcc/testsuite/objc.dg/gnu-runtime-3.m
b/gcc/testsuite/objc.dg/gnu-runtime-3.m
index d26f48cf980..6ed5d9739a6 100644
--- a/gcc/testsuite/objc.dg/gnu-runtime-3.m
+++ b/gcc/testsuite/objc.dg/gnu-runtime-3.m
@@ -7,7 +7,7 @@
#include <string.h>
#include <stdlib.h>
-int main(int argc, void **args)
+int main(int argc, char **args)
{
[TestsuiteObject new];
return 0;
diff --git a/gcc/testsuite/objc.dg/pr48177.m b/gcc/testsuite/objc.dg/pr48177.m
index 0d7ff2979c4..1f9d562b51c 100644
--- a/gcc/testsuite/objc.dg/pr48177.m
+++ b/gcc/testsuite/objc.dg/pr48177.m
@@ -5,7 +5,7 @@
#include <objc/runtime.h>
#include <stdlib.h>
-int main(int argc, void **args)
+int main(int argc, char **args)
{
#ifdef __GNU_LIBOBJC__
/* This special test tests that, if you have a selector already
diff --git a/gcc/testsuite/objc.dg/torture/strings/string1.m
b/gcc/testsuite/objc.dg/torture/strings/string1.m
index 455b5f1bff1..e0686330977 100644
--- a/gcc/testsuite/objc.dg/torture/strings/string1.m
+++ b/gcc/testsuite/objc.dg/torture/strings/string1.m
@@ -14,7 +14,7 @@
#include "../../../objc-obj-c++-shared/nsconstantstring-class.h"
#endif
-int main(int argc, void **args)
+int main(int argc, char **args)
{
if (strcmp ([@"this is a string" cString], "this is a string"))
abort ();
diff --git a/gcc/testsuite/objc.dg/torture/strings/string2.m
b/gcc/testsuite/objc.dg/torture/strings/string2.m
index 030ba602db5..51b9a546e7c 100644
--- a/gcc/testsuite/objc.dg/torture/strings/string2.m
+++ b/gcc/testsuite/objc.dg/torture/strings/string2.m
@@ -14,7 +14,7 @@
#include "../../../objc-obj-c++-shared/nsconstantstring-class.h"
#endif
-int main(int argc, void **args)
+int main(int argc, char **args)
{
if (strcmp ([@"this " @"is " @"a " @"string" cString],
"this " "is " "a " "string"))
diff --git a/gcc/testsuite/objc.dg/torture/strings/string3.m
b/gcc/testsuite/objc.dg/torture/strings/string3.m
index b08dfb242b3..3b0acd01e08 100644
--- a/gcc/testsuite/objc.dg/torture/strings/string3.m
+++ b/gcc/testsuite/objc.dg/torture/strings/string3.m
@@ -16,7 +16,7 @@
#define STRING "this is a string"
-int main (int argc, void **args)
+int main (int argc, char **args)
{
if (strcmp ([@STRING cString], STRING))
abort ();
diff --git a/gcc/testsuite/objc.dg/torture/strings/string4.m
b/gcc/testsuite/objc.dg/torture/strings/string4.m
index 425ccc080ea..0e3eada58a4 100644
--- a/gcc/testsuite/objc.dg/torture/strings/string4.m
+++ b/gcc/testsuite/objc.dg/torture/strings/string4.m
@@ -14,7 +14,7 @@
#include "../../../objc-obj-c++-shared/nsconstantstring-class.h"
#endif
-int main(int argc, void **args)
+int main(int argc, char **args)
{
if ([@"this is a string" length] != strlen ("this is a string"))
abort ();