diff options
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
| -rw-r--r-- | compiler/optimizing/optimizing_compiler.cc | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 1944ba663a..1e515307b4 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -614,7 +614,8 @@ CompiledMethod* OptimizingCompiler::TryCompile(const DexFile::CodeItem* code_ite    {      PassScope scope(HGraphBuilder::kBuilderPassName, &pass_observer);      if (!builder.BuildGraph(*code_item)) { -      CHECK(!shouldCompile) << "Could not build graph in optimizing compiler"; +      DCHECK(!(IsCompilingWithCoreImage() && shouldCompile)) +          << "Could not build graph in optimizing compiler";        pass_observer.SetGraphInBadState();        return nullptr;      } @@ -705,4 +706,9 @@ Compiler* CreateOptimizingCompiler(CompilerDriver* driver) {    return new OptimizingCompiler(driver);  } +bool IsCompilingWithCoreImage() { +  const std::string& image = Runtime::Current()->GetImageLocation(); +  return EndsWith(image, "core.art") || EndsWith(image, "core-optimizing.art"); +} +  }  // namespace art  |