ART: Fix compile-time-init fail

It is possible that a class that isn't itself marked as an image
class and would be skipped for compile-time-initialization by the
compiler driver is initialized when initializing a second class
that is an image class.

If the second class only depended on the first class during
initialization, e.g., to read field values, the compiler driver
may discard the class object (not reachable from image classes),
but record the oat class status as initialized (as it has been).

In that case we miss the initialization when we load the class at
runtime.

Ensure that all initialized classes with a class initializer are
considered image classes and retained.

Bug: 19323020
Change-Id: I4e537f328d9a4ea23ed5ff7166d532b8855f7acd
1 file changed