[commit/testsuite] Work around GCC PR 43053
Daniel Jacobowitz
dan@codesourcery.com
Tue Feb 16 21:12:00 GMT 2010
I have a patch (working around yet more compiler bugs) which causes us
to read the type of a function from its DW_AT_specification.
Normally, you'd expect the function and the function's specification
to have the same type - it's not a very good specification if they
have different types! Unfortunately, I encountered (and filed):
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43053
The type of "this" is "foo * const" in the function but "foo *" in the
specification.
As this is irrelevant to the point of the new overload.exp tests, I've
changed the tests to accept both forms. I'll keep an eye on the GCC
bug to see which form is considered canonical.
--
Daniel Jacobowitz
CodeSourcery
2010-02-16 Daniel Jacobowitz <dan@codesourcery.com>
gdb/testsuite/
* gdb.cp/overload.exp: Allow foo::overload1arg's "this" pointer to
be const or non-const.
diff -urp gdb-merged-orig/gdb/testsuite/gdb.cp/overload.exp gdb-merged/gdb/testsuite/gdb.cp/overload.exp
--- gdb-merged-orig/gdb/testsuite/gdb.cp/overload.exp 2010-02-10 14:52:36.000000000 -0800
+++ gdb-merged/gdb/testsuite/gdb.cp/overload.exp 2010-02-15 16:51:40.000000000 -0800
@@ -333,13 +333,13 @@ gdb_test "print foo::overload1arg(char**
"print foo::overload1arg(char***)"
gdb_test "print foo::overload1arg(void)" \
- "\\$$decimal = {int \\(foo \\* const\\)} $hex <foo::overload1arg\\(\\)>" \
+ "\\$$decimal = {int \\(foo \\*( const|)\\)} $hex <foo::overload1arg\\(\\)>" \
"print foo::overload1arg(void)"
foreach t [list char "signed char" "unsigned char" "short" \
"unsigned short" int "unsigned int" long "unsigned long" \
float double] {
gdb_test "print foo::overload1arg($t)" \
- "\\$$decimal = {int \\(foo \\* const, $t\\)} $hex <foo::overload1arg\\($t\\)>" \
+ "\\$$decimal = {int \\(foo \\*( const|), $t\\)} $hex <foo::overload1arg\\($t\\)>" \
"print foo::overload1arg($t)"
}
More information about the Gdb-patches
mailing list