gdb/testsuite: remove definition of true/false from gdb_compiler_info
authorAndrew Burgess <aburgess@redhat.com>
Thu, 9 Jun 2022 15:56:35 +0000 (16:56 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Fri, 10 Jun 2022 10:05:33 +0000 (11:05 +0100)
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.

gdb/testsuite/gdb.base/all-bin.exp
gdb/testsuite/gdb.base/eval-skip.exp
gdb/testsuite/gdb.base/exprs.exp
gdb/testsuite/gdb.base/miscexprs.exp
gdb/testsuite/gdb.base/pointers.exp
gdb/testsuite/gdb.base/relational.exp
gdb/testsuite/lib/gdb.exp

index 5d493e6d6fc1737b11846605e349caaf66ad9114..1f481210e19b7eba238fdae432a62bf834613edc 100644 (file)
@@ -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"
index 218aaab476c5a3bf5a4e1c1cde9057b31fbae50b..81b37d1a89163195615ce66d75213e2f16ea06ec 100644 (file)
@@ -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"
index 83bc60aa610189e125716614de006dc590d5c7d7..dfe0ec9373753f3bb9626f8fdc2e1fcd8a64da91 100644 (file)
@@ -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"
index cac8cf2ce87cddb36d4cc16e44266cf04ffca378..f633d143b6f180352fbdf340cb9af6c93094246c 100644 (file)
@@ -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" \
index e64066133184165d647fa07535d33a11009bd1a3..586f85a49472b88df0de7699c7f17265965e3ecc 100644 (file)
@@ -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()"
 
 
index 858398323cdb0522f759fb6e98df642f0faa1294..87ccb9f3fe7bf0b1101de2f64f814ce791081aea 100644 (file)
@@ -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
 #
index 37accd9947aa413845d67793dd453d5cc3d038c7..75efc4a62d1a4dc34a788492e616eceafe613fde 100644 (file)
@@ -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
 }