The main purpose of this patch is to be able to get the frame's context (instead of just the target's) when evaluating, so that the language of the frame's CU can be used to select the compiler and/or compiler options to use when parsing the expression. This allows for modules built with mixed languages to be parsed in the context of their frame.
Other associated changes:
- Enable C++ language options when language is C.
- Enable C++ language options when language is C.
- Disable C++11 language options when language is C++.
- Add all C and C++ language variants when determining the language options to set.
- Add test TestMixedLanguages.py to check that the language being used for evaluation is that of the frame.
- Remove expr --language test for ObjC from TestExprOptions.py (it is redundant).
- Fix test TestExprOptions.py to check for C++11 instead of C++ since C++ has to be enabled for C.
- Fix TestPersistentPtrUpdate.py to not require C++11 in C.
This name seems confusing. This is just the language of the current stack frame. Deciding what language to use for the expression is just one possible use of this information. It might also be useful to have the frame format print the language of the frame you've just stopped in. So this should have a more generic name. How about "GetLanguage".