[PATCH] demangler stuff
Carlo Wood
carlo@alinoe.com
Thu Oct 30 15:08:00 GMT 2003
2003-10-30 Carlo Wood <carlo@alinoe.com>
* include/bits/demangle.h
(qualifier_list<Allocator>::decode_qualifiers(string_type&,
string_type&, bool member_function_pointer_qualifiers):
Always seperate the '[' of an array type with a space from
what is left of it, except when that is the closing bracket
of another array dimension.
The main reason for this is that
int const volatile[3]
looks worse then
int const volatile [3]
Ok to commit?
--
Carlo Wood <carlo@alinoe.com>
-------------- next part --------------
? libiberty/autom4te.cache
? libstdc++-v3/.ChangeLog.swp
Index: libstdc++-v3/include/bits/demangle.h
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/bits/demangle.h,v
retrieving revision 1.7
diff -u -d -p -r1.7 demangle.h
--- libstdc++-v3/include/bits/demangle.h 14 Oct 2003 17:46:19 -0000 1.7
+++ libstdc++-v3/include/bits/demangle.h 30 Oct 2003 15:05:39 -0000
@@ -1414,14 +1414,15 @@ namespace __gnu_cxx
case 'A':
{
string_type index = (*iter).get_optional_type();
- if (++iter != M_qualifier_starts.rend()
- && (*iter).first_qualifier() != 'A')
+ if (++iter == M_qualifier_starts.rend())
+ postfix = " [" + index + "]" + postfix;
+ else if ((*iter).first_qualifier() == 'A')
+ postfix = "[" + index + "]" + postfix;
+ else
{
prefix += " (";
postfix = ") [" + index + "]" + postfix;
}
- else
- postfix = "[" + index + "]" + postfix;
break;
}
case 'M':
Index: libstdc++-v3/testsuite/demangle/abi_examples/10.cc
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/demangle/abi_examples/10.cc,v
retrieving revision 1.2
diff -u -d -p -r1.2 10.cc
--- libstdc++-v3/testsuite/demangle/abi_examples/10.cc 24 Jul 2003 21:08:01 -0000 1.2
+++ libstdc++-v3/testsuite/demangle/abi_examples/10.cc 30 Oct 2003 15:05:44 -0000
@@ -34,7 +34,7 @@ int main()
{ static int bar; };
int Foo<int[4]>::bar;
*/
- verify_demangle("_ZN3FooIA4_iE3barE", "Foo<int[4]>::bar");
+ verify_demangle("_ZN3FooIA4_iE3barE", "Foo<int [4]>::bar");
return 0;
}
Index: libstdc++-v3/testsuite/demangle/regression/3111-2.cc
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/demangle/regression/3111-2.cc,v
retrieving revision 1.2
diff -u -d -p -r1.2 3111-2.cc
--- libstdc++-v3/testsuite/demangle/regression/3111-2.cc 24 Jul 2003 21:08:02 -0000 1.2
+++ libstdc++-v3/testsuite/demangle/regression/3111-2.cc 30 Oct 2003 15:05:44 -0000
@@ -32,7 +32,7 @@ int main()
// verify_demangle("_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i",
// "f(int[sizeof(N::A::f() const::foo())])");
verify_demangle("_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i",
- "f(int[sizeof(N::A::f() const::foo)])");
+ "f(int [sizeof(N::A::f() const::foo)])");
return 0;
}
Index: libstdc++-v3/testsuite/demangle/regression/7986-01.cc
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/demangle/regression/7986-01.cc,v
retrieving revision 1.2
diff -u -d -p -r1.2 7986-01.cc
--- libstdc++-v3/testsuite/demangle/regression/7986-01.cc 24 Jul 2003 21:08:02 -0000 1.2
+++ libstdc++-v3/testsuite/demangle/regression/7986-01.cc 30 Oct 2003 15:05:44 -0000
@@ -27,7 +27,7 @@ int main()
{
using namespace __gnu_test;
// cplus-dem FAIL
- verify_demangle("_Z1fA37_iPS_", "f(int[37], int (*) [37])");
+ verify_demangle("_Z1fA37_iPS_", "f(int [37], int (*) [37])");
return 0;
}
Index: libstdc++-v3/testsuite/demangle/regression/7986-07.cc
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/demangle/regression/7986-07.cc,v
retrieving revision 1.2
diff -u -d -p -r1.2 7986-07.cc
--- libstdc++-v3/testsuite/demangle/regression/7986-07.cc 24 Jul 2003 21:08:02 -0000 1.2
+++ libstdc++-v3/testsuite/demangle/regression/7986-07.cc 30 Oct 2003 15:05:44 -0000
@@ -28,7 +28,7 @@ int main()
using namespace __gnu_test;
// cplus-dem FAIL
- verify_demangle("_Z3fooA30_A_i", "foo(int[30][])");
+ verify_demangle("_Z3fooA30_A_i", "foo(int [30][])");
return 0;
More information about the Libstdc++
mailing list