* [testsuite patch] Fix false FAIL in gdb.cp/casts.exp @ 2016-09-11 14:10 Jan Kratochvil 2016-09-15 12:07 ` Pedro Alves 0 siblings, 1 reply; 6+ messages in thread From: Jan Kratochvil @ 2016-09-11 14:10 UTC (permalink / raw) To: gdb-patches [-- Attachment #1: Type: text/plain, Size: 820 bytes --] Hi, gcc-6.2.1-1.fc26.x86_64 gdb compile failed, /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/casts.cc:40:10: error: expected primary-expression before 'int' decltype(int x) ^~~ /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/casts.cc:40:10: error: expected ')' before 'int' /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/casts.cc:40:1: error: expected unqualified-id before 'decltype' decltype(int x) ^~~~~~~~ /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/casts.cc: In function 'int main(int, char**)': /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.cp/casts.cc:59:14: error: expected primary-expression before 'decltype' double y = decltype(2); ^~~~~~~~ 'decltype' is a registered keyword since C++11 which is now a default for GCC. OK for check-in? Jan [-- Attachment #2: 1 --] [-- Type: text/plain, Size: 1245 bytes --] gdb/testsuite/ChangeLog 2016-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.cp/casts.cc: Rename decltype to int_to_double. * gdb.cp/casts.exp (whatis decltype(5)): Rename to ... (whatis int_to_double(5)): ... here. diff --git a/gdb/testsuite/gdb.cp/casts.cc b/gdb/testsuite/gdb.cp/casts.cc index 43f112f..4f68ba0 100644 --- a/gdb/testsuite/gdb.cp/casts.cc +++ b/gdb/testsuite/gdb.cp/casts.cc @@ -37,7 +37,7 @@ struct DoublyDerived : public VirtuallyDerived, // Confuse a simpler approach. double -decltype(int x) +int_to_double(int x) { return x + 2.0; } @@ -56,7 +56,7 @@ main (int argc, char **argv) Alpha *ad = &derived; Alpha *add = &doublyderived; - double y = decltype(2); + double y = int_to_double(2); return 0; /* breakpoint spot: casts.exp: 1 */ } diff --git a/gdb/testsuite/gdb.cp/casts.exp b/gdb/testsuite/gdb.cp/casts.exp index 34a2492..5798098 100644 --- a/gdb/testsuite/gdb.cp/casts.exp +++ b/gdb/testsuite/gdb.cp/casts.exp @@ -112,7 +112,7 @@ gdb_test "print reinterpret_cast<A &> (*b)" " = \\(A \\&\\) @$hex: {a = 42}" \ # Test that keyword shadowing works. -gdb_test "whatis decltype(5)" " = double" +gdb_test "whatis int_to_double(5)" " = double" # Basic tests using typeof. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [testsuite patch] Fix false FAIL in gdb.cp/casts.exp 2016-09-11 14:10 [testsuite patch] Fix false FAIL in gdb.cp/casts.exp Jan Kratochvil @ 2016-09-15 12:07 ` Pedro Alves 2016-09-15 13:25 ` Tom Tromey 0 siblings, 1 reply; 6+ messages in thread From: Pedro Alves @ 2016-09-15 12:07 UTC (permalink / raw) To: Jan Kratochvil, gdb-patches, Tom Tromey On 09/11/2016 03:10 PM, Jan Kratochvil wrote: > --- a/gdb/testsuite/gdb.cp/casts.exp > +++ b/gdb/testsuite/gdb.cp/casts.exp > @@ -112,7 +112,7 @@ gdb_test "print reinterpret_cast<A &> (*b)" " = \\(A \\&\\) @$hex: {a = 42}" \ > > # Test that keyword shadowing works. > This comment suggests that the test actually uses decltype on purpose. > -gdb_test "whatis decltype(5)" " = double" > +gdb_test "whatis int_to_double(5)" " = double" > Seems to be exercising the FLAG_SHADOW bits: ... {"__typeof__", TYPEOF, OP_TYPEOF, 0 }, {"__typeof", TYPEOF, OP_TYPEOF, 0 }, {"typeof", TYPEOF, OP_TYPEOF, FLAG_SHADOW }, {"__decltype", DECLTYPE, OP_DECLTYPE, FLAG_CXX }, {"decltype", DECLTYPE, OP_DECLTYPE, FLAG_CXX | FLAG_SHADOW }, ... /* This is used to associate some attributes with a token. */ enum token_flag { ... /* If this bit is set, the token is conditional: if there is a symbol of the same name, then the token is a symbol; otherwise, the token is a keyword. */ FLAG_SHADOW = 2 }; So perhaps a better fix is to move that particular test to a separate testcase that force-compiles with -std=c++03. Adding Tromey, who wrote the test initially. Thanks, Pedro Alves ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [testsuite patch] Fix false FAIL in gdb.cp/casts.exp 2016-09-15 12:07 ` Pedro Alves @ 2016-09-15 13:25 ` Tom Tromey 2016-09-15 22:06 ` [testsuite patchv2] " Jan Kratochvil 0 siblings, 1 reply; 6+ messages in thread From: Tom Tromey @ 2016-09-15 13:25 UTC (permalink / raw) To: Pedro Alves; +Cc: Jan Kratochvil, gdb-patches, Tom Tromey >>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes: Pedro> So perhaps a better fix is to move that particular test to a Pedro> separate testcase that force-compiles with -std=c++03. Pedro> Adding Tromey, who wrote the test initially. Yeah, I think that's correct. According to the patch email, I did this because there wasn't a way to tell which version of C++ was in use: https://sourceware.org/ml/gdb-patches/2012-07/msg00349.html Tom ^ permalink raw reply [flat|nested] 6+ messages in thread
* [testsuite patchv2] Fix false FAIL in gdb.cp/casts.exp 2016-09-15 13:25 ` Tom Tromey @ 2016-09-15 22:06 ` Jan Kratochvil 2016-09-16 15:45 ` Pedro Alves 0 siblings, 1 reply; 6+ messages in thread From: Jan Kratochvil @ 2016-09-15 22:06 UTC (permalink / raw) To: Pedro Alves; +Cc: gdb-patches, Tom Tromey [-- Attachment #1: Type: text/plain, Size: 499 bytes --] On Thu, 15 Sep 2016 15:25:35 +0200, Tom Tromey wrote: > >>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes: > > Pedro> So perhaps a better fix is to move that particular test to a > Pedro> separate testcase that force-compiles with -std=c++03. > > Pedro> Adding Tromey, who wrote the test initially. > > Yeah, I think that's correct. According to the patch email, I did this > because there wasn't a way to tell which version of C++ was in use: Is this file OK for check-in? Thanks, Jan [-- Attachment #2: 1 --] [-- Type: text/plain, Size: 3436 bytes --] gdb/testsuite/ChangeLog 2016-09-16 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.cp/casts.cc (decltype): Move it ... (main): ... with its call to ... * gdb.cp/casts03.cc: ... a new file. * gdb.cp/casts.exp: Add new file casts03.cc, move decltype test to it. diff --git a/gdb/testsuite/gdb.cp/casts.cc b/gdb/testsuite/gdb.cp/casts.cc index 43f112f..543db89 100644 --- a/gdb/testsuite/gdb.cp/casts.cc +++ b/gdb/testsuite/gdb.cp/casts.cc @@ -34,14 +34,6 @@ struct DoublyDerived : public VirtuallyDerived, { }; -// Confuse a simpler approach. - -double -decltype(int x) -{ - return x + 2.0; -} - int main (int argc, char **argv) { @@ -56,7 +48,5 @@ main (int argc, char **argv) Alpha *ad = &derived; Alpha *add = &doublyderived; - double y = decltype(2); - return 0; /* breakpoint spot: casts.exp: 1 */ } diff --git a/gdb/testsuite/gdb.cp/casts.exp b/gdb/testsuite/gdb.cp/casts.exp index 34a2492..57a56b8 100644 --- a/gdb/testsuite/gdb.cp/casts.exp +++ b/gdb/testsuite/gdb.cp/casts.exp @@ -27,7 +27,7 @@ if { [skip_cplus_tests] } { continue } -standard_testfile .cc +standard_testfile .cc casts03.cc if [get_compiler_info "c++"] { return -1 @@ -110,10 +110,6 @@ gdb_test "print reinterpret_cast<void> (b)" "Invalid reinterpret_cast" \ gdb_test "print reinterpret_cast<A &> (*b)" " = \\(A \\&\\) @$hex: {a = 42}" \ "reinterpret_cast to reference type" -# Test that keyword shadowing works. - -gdb_test "whatis decltype(5)" " = double" - # Basic tests using typeof. foreach opname {__typeof__ __typeof __decltype} { @@ -176,3 +172,23 @@ gdb_test "print dynamic_cast<DoublyDerived *> (add)" \ gdb_test "print dynamic_cast<Gamma *> (add)" \ " = \\(Gamma \\*\\) $nonzero_hex" \ "dynamic_cast to sibling" + +if {[prepare_for_testing $testfile.exp ${testfile}03 $srcfile2 \ + {debug c++ additional_flags=-std=c++03}]} { + return -1 +} + +if ![runto_main] then { + perror "couldn't run to breakpoint" + continue +} + +# Prevent symbol on address 0x0 being printed. +gdb_test_no_output "set print symbol off" + +gdb_breakpoint [gdb_get_line_number "casts.exp: 1" $srcfile2] +gdb_continue_to_breakpoint "end of casts03" + +# Test that keyword shadowing works. + +gdb_test "whatis decltype(5)" " = double" diff --git a/gdb/testsuite/gdb.cp/casts03.cc b/gdb/testsuite/gdb.cp/casts03.cc new file mode 100644 index 0000000..58d9a42 --- /dev/null +++ b/gdb/testsuite/gdb.cp/casts03.cc @@ -0,0 +1,32 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2016 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +// Confuse a simpler approach. + +double +decltype(int x) +{ + return x + 2.0; +} + +int +main (int argc, char **argv) +{ + double y = decltype(2); + + return 0; /* breakpoint spot: casts.exp: 1 */ +} ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [testsuite patchv2] Fix false FAIL in gdb.cp/casts.exp 2016-09-15 22:06 ` [testsuite patchv2] " Jan Kratochvil @ 2016-09-16 15:45 ` Pedro Alves 2016-09-16 17:25 ` [commit] " Jan Kratochvil 0 siblings, 1 reply; 6+ messages in thread From: Pedro Alves @ 2016-09-16 15:45 UTC (permalink / raw) To: Jan Kratochvil; +Cc: gdb-patches, Tom Tromey On 09/15/2016 11:06 PM, Jan Kratochvil wrote: > On Thu, 15 Sep 2016 15:25:35 +0200, Tom Tromey wrote: >>>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes: >> >> Pedro> So perhaps a better fix is to move that particular test to a >> Pedro> separate testcase that force-compiles with -std=c++03. >> >> Pedro> Adding Tromey, who wrote the test initially. >> >> Yeah, I think that's correct. According to the patch email, I did this >> because there wasn't a way to tell which version of C++ was in use: > > Is this file OK for check-in? OK. Thanks, Pedro Alves ^ permalink raw reply [flat|nested] 6+ messages in thread
* [commit] [testsuite patchv2] Fix false FAIL in gdb.cp/casts.exp 2016-09-16 15:45 ` Pedro Alves @ 2016-09-16 17:25 ` Jan Kratochvil 0 siblings, 0 replies; 6+ messages in thread From: Jan Kratochvil @ 2016-09-16 17:25 UTC (permalink / raw) To: Pedro Alves; +Cc: gdb-patches, Tom Tromey On Fri, 16 Sep 2016 17:45:45 +0200, Pedro Alves wrote: > On 09/15/2016 11:06 PM, Jan Kratochvil wrote: > > On Thu, 15 Sep 2016 15:25:35 +0200, Tom Tromey wrote: > >>>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes: > >> > >> Pedro> So perhaps a better fix is to move that particular test to a > >> Pedro> separate testcase that force-compiles with -std=c++03. > >> > >> Pedro> Adding Tromey, who wrote the test initially. > >> > >> Yeah, I think that's correct. According to the patch email, I did this > >> because there wasn't a way to tell which version of C++ was in use: > > > > Is this file OK for check-in? > > OK. d41a5c096ec613f7df33d5d5ea4c0e512ac1e87a Jan ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-09-16 17:25 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-09-11 14:10 [testsuite patch] Fix false FAIL in gdb.cp/casts.exp Jan Kratochvil 2016-09-15 12:07 ` Pedro Alves 2016-09-15 13:25 ` Tom Tromey 2016-09-15 22:06 ` [testsuite patchv2] " Jan Kratochvil 2016-09-16 15:45 ` Pedro Alves 2016-09-16 17:25 ` [commit] " Jan Kratochvil
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).