summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/LanguageRuntime.cpp
diff options
context:
space:
mode:
authorDawn Perchik <dawn@burble.org>2015-07-21 22:05:07 +0000
committerDawn Perchik <dawn@burble.org>2015-07-21 22:05:07 +0000
commit23b1decbe763783c630763c0ae9b7b20773131c8 (patch)
treefdd11d22d8a0ab885562f2a07d7aa9720293bc19 /lldb/source/Target/LanguageRuntime.cpp
parentf836c89c4953d9ca5e390b41e0ebc84c903a46c0 (diff)
downloadbcm5719-llvm-23b1decbe763783c630763c0ae9b7b20773131c8.tar.gz
bcm5719-llvm-23b1decbe763783c630763c0ae9b7b20773131c8.zip
Add support for specifying a language to use when parsing breakpoints.
Target and breakpoints options were added: breakpoint set --language lang --name func settings set target.language pascal These specify the Language to use when interpreting the breakpoint's expression (note: currently only implemented for breakpoints on identifiers). If the breakpoint language is not set, the target.language setting is used. This support is required by Pascal, for example, to set breakpoint at 'ns.foo' for function 'foo' in namespace 'ns'. Tests on the language were also added to Module::PrepareForFunctionNameLookup for efficiency. Reviewed by: clayborg Subscribers: jingham, lldb-commits Differential Revision: http://reviews.llvm.org/D11119 llvm-svn: 242844
Diffstat (limited to 'lldb/source/Target/LanguageRuntime.cpp')
-rw-r--r--lldb/source/Target/LanguageRuntime.cpp43
1 files changed, 42 insertions, 1 deletions
diff --git a/lldb/source/Target/LanguageRuntime.cpp b/lldb/source/Target/LanguageRuntime.cpp
index 9c7b441d4c5..1bec2063ad0 100644
--- a/lldb/source/Target/LanguageRuntime.cpp
+++ b/lldb/source/Target/LanguageRuntime.cpp
@@ -371,7 +371,8 @@ struct language_name_pair language_names[] =
{ "renderscript", eLanguageTypeExtRenderScript},
// Now synonyms, in arbitrary order
{ "objc", eLanguageTypeObjC },
- { "objc++", eLanguageTypeObjC_plus_plus }
+ { "objc++", eLanguageTypeObjC_plus_plus },
+ { "pascal", eLanguageTypePascal83 }
};
static uint32_t num_languages = sizeof(language_names) / sizeof (struct language_name_pair);
@@ -420,6 +421,46 @@ LanguageRuntime::LanguageIsCPlusPlus (LanguageType language)
}
}
+bool
+LanguageRuntime::LanguageIsObjC (LanguageType language)
+{
+ switch (language)
+ {
+ case eLanguageTypeObjC:
+ case eLanguageTypeObjC_plus_plus:
+ return true;
+ default:
+ return false;
+ }
+}
+
+bool
+LanguageRuntime::LanguageIsC (LanguageType language)
+{
+ switch (language)
+ {
+ case eLanguageTypeC:
+ case eLanguageTypeC89:
+ case eLanguageTypeC99:
+ case eLanguageTypeC11:
+ return true;
+ default:
+ return false;
+ }
+}
+
+bool
+LanguageRuntime::LanguageIsPascal (LanguageType language)
+{
+ switch (language)
+ {
+ case eLanguageTypePascal83:
+ return true;
+ default:
+ return false;
+ }
+}
+
void
LanguageRuntime::InitializeCommands (CommandObject* parent)
{
OpenPOWER on IntegriCloud