language_get_symbol_name_matcher -> get_symbol_name_matcher
[deliverable/binutils-gdb.git] / gdb / language.c
index c3872fc9a639e3c31624e7e73f2e0866a460780f..0d8604b8268bca403840a6d8a10f3213d40e5338 100644 (file)
@@ -1,6 +1,6 @@
 /* Multiple source language support for GDB.
 
 /* 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.
 
    Contributed by the Department of Computer Science at the State University
    of New York at Buffalo.
@@ -727,9 +727,16 @@ default_symbol_name_matcher (const char *symbol_search_name,
 /* See language.h.  */
 
 symbol_name_matcher_ftype *
 /* 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;
   if (lang->la_get_symbol_name_matcher != nullptr)
     return lang->la_get_symbol_name_matcher (lookup_name);
   return default_symbol_name_matcher;
This page took 0.025016 seconds and 4 git commands to generate.