public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdb/testsuite: remove definition of true/false from gdb_compiler_info
@ 2022-06-10 10:05 Andrew Burgess
  0 siblings, 0 replies; only message in thread
From: Andrew Burgess @ 2022-06-10 10:05 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=80c0a3bf1b949403521d186fc04ed9052ea1d7d4

commit 80c0a3bf1b949403521d186fc04ed9052ea1d7d4
Author: Andrew Burgess <aburgess@redhat.com>
Date:   Thu Jun 9 16:56:35 2022 +0100

    gdb/testsuite: remove definition of true/false from gdb_compiler_info
    
    Since pretty much forever the get_compiler_info function has included
    these lines:
    
        # Most compilers will evaluate comparisons and other boolean
        # operations to 0 or 1.
        uplevel \#0 { set true 1 }
        uplevel \#0 { set false 0 }
    
    These define global variables true (to 1) and false (to 0).
    
    It seems odd to me that these globals are defined in
    get_compiler_info, I guess maybe the original thinking was that if a
    compiler had different true/false values then we would detect it there
    and define true/false differently.
    
    I don't think we should be bundling this logic into get_compiler_info,
    it seems weird to me that in order to use $true/$false a user needs to
    first call get_compiler_info.
    
    It would be better I think if each test script that wants these
    variables just defined them itself, if in the future we did need
    different true/false values based on compiler version then we'd just
    do:
    
      if { [test_compiler_info "some_pattern"] } {
        # Defined true/false one way...
      } else {
        # Defined true/false another way...
      }
    
    But given the current true/false definitions have been in place since
    at least 1999, I suspect this will not be needed any time soon.
    
    Given that the definitions of true/false are so simple, right now my
    suggestion is just to define them in each test script that wants
    them (there's not that many).  If we ever did need more complex logic
    then we can always add a function in gdb.exp that sets up these
    globals, but that seems overkill for now.
    
    There should be no change in what is tested after this commit.

Diff:
---
 gdb/testsuite/gdb.base/all-bin.exp    | 4 ++++
 gdb/testsuite/gdb.base/eval-skip.exp  | 3 +++
 gdb/testsuite/gdb.base/exprs.exp      | 4 ++++
 gdb/testsuite/gdb.base/miscexprs.exp  | 3 +++
 gdb/testsuite/gdb.base/pointers.exp   | 4 ++++
 gdb/testsuite/gdb.base/relational.exp | 4 ++++
 gdb/testsuite/lib/gdb.exp             | 5 -----
 7 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/gdb/testsuite/gdb.base/all-bin.exp b/gdb/testsuite/gdb.base/all-bin.exp
index 5d493e6d6fc..1f481210e19 100644
--- a/gdb/testsuite/gdb.base/all-bin.exp
+++ b/gdb/testsuite/gdb.base/all-bin.exp
@@ -46,6 +46,10 @@ if ![runto_main] then {
     return
 }
 
+# These are used as expected result values.
+set false 0
+set true 1
+
 gdb_test "next" "return 0;" "continuing after dummy()"
 
 gdb_test "print v_int+v_char" " = 71" "print value of v_int+v_char"
diff --git a/gdb/testsuite/gdb.base/eval-skip.exp b/gdb/testsuite/gdb.base/eval-skip.exp
index 218aaab476c..81b37d1a891 100644
--- a/gdb/testsuite/gdb.base/eval-skip.exp
+++ b/gdb/testsuite/gdb.base/eval-skip.exp
@@ -51,6 +51,9 @@ if ![runto_main] then {
     return
 }
 
+# This is used as an expected result value.
+set false 0
+
 gdb_test_no_output "set variable x=14" "set variable x=14"
 gdb_test_no_output "set variable y=2" "set variable y=2"
 gdb_test_no_output "set variable z=2" "set variable z=2"
diff --git a/gdb/testsuite/gdb.base/exprs.exp b/gdb/testsuite/gdb.base/exprs.exp
index 83bc60aa610..dfe0ec93737 100644
--- a/gdb/testsuite/gdb.base/exprs.exp
+++ b/gdb/testsuite/gdb.base/exprs.exp
@@ -41,6 +41,10 @@ if ![runto_main] then {
     return
 }
 
+# These are used as expected result values.
+set false 0
+set true 1
+
 proc test_expr { args } {
     if { [llength $args] % 2 } {
 	warning "an even # of arguments should be passed to test_expr"
diff --git a/gdb/testsuite/gdb.base/miscexprs.exp b/gdb/testsuite/gdb.base/miscexprs.exp
index cac8cf2ce87..f633d143b6f 100644
--- a/gdb/testsuite/gdb.base/miscexprs.exp
+++ b/gdb/testsuite/gdb.base/miscexprs.exp
@@ -59,6 +59,9 @@ if ![runto_main] then {
     return
 }
 
+# This is used as an expected result value.
+set false 0
+
 gdb_test "break marker1" ".*" ""
 
 gdb_test "cont" \
diff --git a/gdb/testsuite/gdb.base/pointers.exp b/gdb/testsuite/gdb.base/pointers.exp
index e6406613318..586f85a4947 100644
--- a/gdb/testsuite/gdb.base/pointers.exp
+++ b/gdb/testsuite/gdb.base/pointers.exp
@@ -48,6 +48,10 @@ if ![runto_main] then {
     return
 }
 
+# These are used as expected result values.
+set false 0
+set true 1
+
 gdb_test "next " "more_code.*;" "continuing after dummy()"
 
 
diff --git a/gdb/testsuite/gdb.base/relational.exp b/gdb/testsuite/gdb.base/relational.exp
index 858398323cd..87ccb9f3fe7 100644
--- a/gdb/testsuite/gdb.base/relational.exp
+++ b/gdb/testsuite/gdb.base/relational.exp
@@ -42,6 +42,10 @@ if ![runto_main] then {
     return
 }
 
+# These are used as expected result values.
+set false 0
+set true 1
+
 #
 # test expressions with "int" types
 #
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 37accd9947a..75efc4a62d1 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -4191,11 +4191,6 @@ proc get_compiler_info {{language "c"}} {
     # Log what happened.
     verbose -log "get_compiler_info: $compiler_info"
 
-    # Most compilers will evaluate comparisons and other boolean
-    # operations to 0 or 1.
-    uplevel \#0 { set true 1 }
-    uplevel \#0 { set false 0 }
-
     return 0
 }


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-06-10 10:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-10 10:05 [binutils-gdb] gdb/testsuite: remove definition of true/false from gdb_compiler_info Andrew Burgess

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).