Make print_command_trace varargs
[deliverable/binutils-gdb.git] / gdb / language.c
index c05b703207ff10acfa0a9aa2a3a95493b1b4db4e..22199e0c0d673dec406f77aac8eed1e82877ccf2 100644 (file)
@@ -1,6 +1,6 @@
 /* Multiple source language support for GDB.
 
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    Contributed by the Department of Computer Science at the State University
    of New York at Buffalo.
@@ -707,13 +707,14 @@ default_symbol_name_matcher (const char *symbol_search_name,
                             completion_match_result *comp_match_res)
 {
   const std::string &name = lookup_name.name ();
-
+  completion_match_for_lcd *match_for_lcd
+    = (comp_match_res != NULL ? &comp_match_res->match_for_lcd : NULL);
   strncmp_iw_mode mode = (lookup_name.completion_mode ()
                          ? strncmp_iw_mode::NORMAL
                          : strncmp_iw_mode::MATCH_PARAMS);
 
   if (strncmp_iw_with_mode (symbol_search_name, name.c_str (), name.size (),
-                           mode, language_minimal) == 0)
+                           mode, language_minimal, match_for_lcd) == 0)
     {
       if (comp_match_res != NULL)
        comp_match_res->set_match (symbol_search_name);
@@ -726,9 +727,16 @@ default_symbol_name_matcher (const char *symbol_search_name,
 /* See language.h.  */
 
 symbol_name_matcher_ftype *
-language_get_symbol_name_matcher (const language_defn *lang,
-                                 const lookup_name_info &lookup_name)
+get_symbol_name_matcher (const language_defn *lang,
+                        const lookup_name_info &lookup_name)
 {
+  /* If currently in Ada mode, and the lookup name is wrapped in
+     '<...>', hijack all symbol name comparisons using the Ada
+     matcher, which handles the verbatim matching.  */
+  if (current_language->la_language == language_ada
+      && lookup_name.ada ().verbatim_p ())
+    return current_language->la_get_symbol_name_matcher (lookup_name);
+
   if (lang->la_get_symbol_name_matcher != nullptr)
     return lang->la_get_symbol_name_matcher (lookup_name);
   return default_symbol_name_matcher;
@@ -856,6 +864,7 @@ const struct language_defn unknown_language_defn =
   default_read_var_value,      /* la_read_var_value */
   unk_lang_trampoline,         /* Language specific skip_trampoline */
   "this",                      /* name_of_this */
+  true,                                /* store_sym_names_in_linkage_form_p */
   basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */
   basic_lookup_transparent_type,/* lookup_transparent_type */
   unk_lang_demangle,           /* Language specific symbol demangler */
@@ -907,6 +916,7 @@ const struct language_defn auto_language_defn =
   default_read_var_value,      /* la_read_var_value */
   unk_lang_trampoline,         /* Language specific skip_trampoline */
   "this",                      /* name_of_this */
+  false,                       /* store_sym_names_in_linkage_form_p */
   basic_lookup_symbol_nonlocal,        /* lookup_symbol_nonlocal */
   basic_lookup_transparent_type,/* lookup_transparent_type */
   unk_lang_demangle,           /* Language specific symbol demangler */
This page took 0.024005 seconds and 4 git commands to generate.