diff options
Diffstat (limited to 'source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp')
| -rw-r--r-- | source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp | 12 | 
1 files changed, 9 insertions, 3 deletions
diff --git a/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp b/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp index 4e20be79f68b7..d9e53074b3fbc 100644 --- a/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp +++ b/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp @@ -66,7 +66,6 @@  #include "ClangPersistentVariables.h"  #include "IRForTarget.h" -#include "lldb/Core/ArchSpec.h"  #include "lldb/Core/Debugger.h"  #include "lldb/Core/Disassembler.h"  #include "lldb/Core/Module.h" @@ -351,7 +350,6 @@ ClangExpressionParser::ClangExpressionParser(ExecutionContextScope *exe_scope,        LLDB_LOGV(log, "LinkerVersion: '{0}'", opts.LinkerVersion);        StringList::LogDump(log, opts.FeaturesAsWritten, "FeaturesAsWritten");        StringList::LogDump(log, opts.Features, "Features"); -      StringList::LogDump(log, opts.Reciprocals, "Reciprocals");      }    // 4. Create and install the target on the compiler. @@ -391,6 +389,14 @@ ClangExpressionParser::ClangExpressionParser(ExecutionContextScope *exe_scope,      // FIXME: the following language option is a temporary workaround,      // to "ask for ObjC, get ObjC++" (see comment above).      m_compiler->getLangOpts().CPlusPlus = true; + +    // Clang now sets as default C++14 as the default standard (with +    // GNU extensions), so we do the same here to avoid mismatches that +    // cause compiler error when evaluating expressions (e.g. nullptr +    // not found as it's a C++11 feature). Currently lldb evaluates +    // C++14 as C++11 (see two lines below) so we decide to be consistent +    // with that, but this could be re-evaluated in the future. +    m_compiler->getLangOpts().CPlusPlus11 = true;      break;    case lldb::eLanguageTypeC_plus_plus:    case lldb::eLanguageTypeC_plus_plus_11: @@ -526,7 +532,7 @@ ClangExpressionParser::ClangExpressionParser(ExecutionContextScope *exe_scope,    if (decl_map) {      llvm::IntrusiveRefCntPtr<clang::ExternalASTSource> ast_source(          decl_map->CreateProxy()); -    decl_map->InstallASTContext(ast_context.get()); +    decl_map->InstallASTContext(*ast_context, m_compiler->getFileManager());      ast_context->setExternalSource(ast_source);    }  | 
