diff options
author | Tom Tromey <tom@tromey.com> | 2023-03-28 20:30:01 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2024-01-08 18:40:22 -0700 |
commit | c83a2802182b3da5d1080425ded0700b3af27f6b (patch) | |
tree | 4970e49f90ed92221859b55a8747ddb7006477ea | |
parent | 245703b3ce7522ddbf9290267129878ad8c6c725 (diff) | |
download | binutils-c83a2802182b3da5d1080425ded0700b3af27f6b.zip binutils-c83a2802182b3da5d1080425ded0700b3af27f6b.tar.gz binutils-c83a2802182b3da5d1080425ded0700b3af27f6b.tar.bz2 |
Change current_language to be a macro
This changes the 'current_language' global to be a macro that wraps a
function call. This change will let a subsequent patch introduce lazy
language setting.
-rw-r--r-- | gdb/language.c | 16 | ||||
-rw-r--r-- | gdb/language.h | 7 |
2 files changed, 18 insertions, 5 deletions
diff --git a/gdb/language.c b/gdb/language.c index cfd4a62..12a953e 100644 --- a/gdb/language.c +++ b/gdb/language.c @@ -79,9 +79,17 @@ enum case_sensitivity case_sensitivity = case_sensitive_on; /* The current language and language_mode (see language.h). */ -const struct language_defn *current_language = nullptr; +static const struct language_defn *global_current_language; enum language_mode language_mode = language_mode_auto; +/* See language.h. */ + +const struct language_defn * +get_current_language () +{ + return global_current_language; +} + /* The language that the user expects to be typing in (the language of main(), or the last language we notified them about, or C). */ @@ -177,9 +185,9 @@ set_language (const char *language) /* Found it! Go into manual mode, and use this language. */ language_mode = language_mode_manual; - current_language = lang; + global_current_language = lang; set_range_case (); - expected_language = current_language; + expected_language = lang; return; } @@ -364,7 +372,7 @@ set_range_case (void) void set_language (enum language lang) { - current_language = language_def (lang); + global_current_language = language_def (lang); set_range_case (); } diff --git a/gdb/language.h b/gdb/language.h index 6ee8f61..6ff6f5e 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -680,6 +680,11 @@ protected: (const lookup_name_info &lookup_name) const; }; +/* Return the current language. Normally code just uses the + 'current_language' macro. */ + +extern const struct language_defn *get_current_language (); + /* Pointer to the language_defn for our current language. This pointer always points to *some* valid struct; it can be used without checking it for validity. @@ -696,7 +701,7 @@ protected: the language of symbol files (e.g. detecting when ".c" files are C++), it should be a separate setting from the current_language. */ -extern const struct language_defn *current_language; +#define current_language (get_current_language ()) /* Pointer to the language_defn expected by the user, e.g. the language of main(), or the language we last mentioned in a message, or C. */ |