aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2021-08-26 18:17:40 -0600
committerTom Tromey <tom@tromey.com>2021-09-24 11:58:04 -0600
commit7ebaa5f7821682c40e79ee1fdfe43528b7d87376 (patch)
treee32d94cab5616bedf19aa1637eaea7e1c0df49fb /gdb
parent604386598d43e50f183aba65189354e04ffbdda3 (diff)
downloadgdb-7ebaa5f7821682c40e79ee1fdfe43528b7d87376.zip
gdb-7ebaa5f7821682c40e79ee1fdfe43528b7d87376.tar.gz
gdb-7ebaa5f7821682c40e79ee1fdfe43528b7d87376.tar.bz2
Move value_true to value.h
I noticed that value_true is declared in language.h and defined in language.c. However, as part of the value API, I think it would be better in one of those files. And, because it is very short, I changed it to be an inline function in value.h. I've also removed a comment from the implementation, on the basis that it seems obsolete -- if the change it suggests was needed, it probably would have been done by now; and if it is needed in the future, odds are it would be done differently anyway. Finally, this patch also changes value_true and value_logical_not to return a bool, and updates some uses.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ada-lang.c10
-rw-r--r--gdb/cli/cli-script.c3
-rw-r--r--gdb/eval.c4
-rw-r--r--gdb/language.c17
-rw-r--r--gdb/language.h4
-rw-r--r--gdb/opencl-lang.c2
-rw-r--r--gdb/valarith.c4
-rw-r--r--gdb/value.h10
8 files changed, 20 insertions, 34 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 487d92b..a00fa14 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -11765,13 +11765,13 @@ re_set_exception (struct breakpoint *b)
user specified a specific exception, we only want to cause a stop
if the program thrown that exception. */
-static int
+static bool
should_stop_exception (const struct bp_location *bl)
{
struct ada_catchpoint *c = (struct ada_catchpoint *) bl->owner;
const struct ada_catchpoint_location *ada_loc
= (const struct ada_catchpoint_location *) bl;
- int stop;
+ bool stop;
struct internalvar *var = lookup_internalvar ("_ada_exception");
if (c->m_kind == ada_catch_assert)
@@ -11799,16 +11799,16 @@ should_stop_exception (const struct bp_location *bl)
/* With no specific exception, should always stop. */
if (c->excep_string.empty ())
- return 1;
+ return true;
if (ada_loc->excep_cond_expr == NULL)
{
/* We will have a NULL expression if back when we were creating
the expressions, this location's had failed to parse. */
- return 1;
+ return true;
}
- stop = 1;
+ stop = true;
try
{
struct value *mark;
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index 9846367..0aaa59e 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -19,7 +19,6 @@
#include "defs.h"
#include "value.h"
-#include "language.h" /* For value_true */
#include <ctype.h>
#include "ui-out.h"
@@ -579,7 +578,7 @@ execute_control_command_1 (struct command_line *cmd, int from_tty)
/* Keep iterating so long as the expression is true. */
while (loop == 1)
{
- int cond_result;
+ bool cond_result;
QUIT;
diff --git a/gdb/eval.c b/gdb/eval.c
index 1c5c8cf..bfab6d8 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -2204,7 +2204,7 @@ logical_and_operation::evaluate (struct type *expect_type,
}
else
{
- int tem = value_logical_not (arg1);
+ bool tem = value_logical_not (arg1);
if (!tem)
{
arg2 = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
@@ -2233,7 +2233,7 @@ logical_or_operation::evaluate (struct type *expect_type,
}
else
{
- int tem = value_logical_not (arg1);
+ bool tem = value_logical_not (arg1);
if (tem)
{
arg2 = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
diff --git a/gdb/language.c b/gdb/language.c
index 0354fb8..cb28e63 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -387,23 +387,6 @@ language_info ()
show_language_command (NULL, 1, NULL, NULL);
}
-
-/* This page contains functions that return info about
- (struct value) values used in GDB. */
-
-/* Returns non-zero if the value VAL represents a true value. */
-int
-value_true (struct value *val)
-{
- /* It is possible that we should have some sort of error if a non-boolean
- value is used in this context. Possibly dependent on some kind of
- "boolean-checking" option like range checking. But it should probably
- not depend on the language except insofar as is necessary to identify
- a "boolean" value (i.e. in C using a float, pointer, etc., as a boolean
- should be an error, probably). */
- return !value_logical_not (val);
-}
-
/* This page contains functions for the printing out of
error messages that occur during type- and range-
checking. */
diff --git a/gdb/language.h b/gdb/language.h
index 63d64b5..cec3ab0 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -778,10 +778,6 @@ extern enum language set_language (enum language);
extern void range_error (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
-/* Data: Does this value represent "truth" to the current language? */
-
-extern int value_true (struct value *);
-
/* Misc: The string representing a particular enum language. */
extern enum language language_enum (const char *str);
diff --git a/gdb/opencl-lang.c b/gdb/opencl-lang.c
index 136969e..b877de4 100644
--- a/gdb/opencl-lang.c
+++ b/gdb/opencl-lang.c
@@ -748,7 +748,7 @@ opencl_logical_binop_operation::evaluate (struct type *expect_type,
/* For scalar built-in types, only evaluate the right
hand operand if the left hand operand compares
unequal(&&)/equal(||) to 0. */
- int tmp = value_logical_not (arg1);
+ bool tmp = value_logical_not (arg1);
if (op == BINOP_LOGICAL_OR)
tmp = !tmp;
diff --git a/gdb/valarith.c b/gdb/valarith.c
index 9ebad64..07472ef 100644
--- a/gdb/valarith.c
+++ b/gdb/valarith.c
@@ -1653,9 +1653,9 @@ value_binop (struct value *arg1, struct value *arg2, enum exp_opcode op)
return val;
}
-/* Simulate the C operator ! -- return 1 if ARG1 contains zero. */
+/* See value.h. */
-int
+bool
value_logical_not (struct value *arg1)
{
int len;
diff --git a/gdb/value.h b/gdb/value.h
index e1c6aab..3f00444 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -1022,7 +1022,15 @@ extern int value_equal_contents (struct value *arg1, struct value *arg2);
extern int value_less (struct value *arg1, struct value *arg2);
-extern int value_logical_not (struct value *arg1);
+/* Simulate the C operator ! -- return true if ARG1 contains zero. */
+extern bool value_logical_not (struct value *arg1);
+
+/* Returns true if the value VAL represents a true value. */
+static inline bool
+value_true (struct value *val)
+{
+ return !value_logical_not (val);
+}
/* C++ */