[Lldb-commits] [PATCH] D11482: Add target setting to have the language follow the frame's CU.
Dawn Perchik
dawn+llvm at burble.org
Fri Jul 24 20:21:06 PDT 2015
dawn added a comment.
PS: I hope you won't return ObjC++ if language is unknown for any of the code you write - see inline comment.
PPS: Many thanks again for all your reviews!!
================
Comment at: source/Target/Target.cpp:2158-2178
@@ -2136,1 +2157,23 @@
+// Return the language of the selected frame's CU.
+lldb::LanguageType
+Target::GetLanguageOfSelectedFrame () const
+{
+ LanguageType language = eLanguageTypeUnknown;
+ if (m_process_sp)
+ {
+ ThreadSP sel_thread_sp(m_process_sp->GetThreadList().GetSelectedThread());
+ if (sel_thread_sp)
+ {
+ StackFrameSP sel_frame_sp = sel_thread_sp->GetSelectedFrame();
+ if (sel_frame_sp)
+ {
+ CompileUnit *cu = sel_frame_sp->GetSymbolContext(eSymbolContextCompUnit).comp_unit;
+ if (cu)
+ language = cu->GetLanguage();
+ }
+ }
+ }
+ return language;
+}
+
----------------
clayborg wrote:
> This should be moved to the StackFrame as:
>
> ```
> lldb::LanguageType
> StackFrame::GetDefaultExpressionLanguage();
> ```
>
> And it should check if the language is form of C, C++, ObjC, or ObjC ++, then return ObjC++, else return the language.
ObjC++ should not be the default, because then the code/user can't know if it really is unknown or is in a ObjC++ context. Having it return unknown is good - the expression code sets the compiler's language options for unknown the same as ObjC++ anyway (see code in ClangExpressionParser::ClangExpressionParser).
Repository:
rL LLVM
http://reviews.llvm.org/D11482
More information about the lldb-commits
mailing list