[1] We should relax the checks so that if a static field K.f1 points to the same object as another static field R.f2, and R is a subgraph root class, K.f1should be considered safe. (Today, we already consider that R.f2 is safe).
E.g., if K.f1 is equal to any of the following, consider it to be safe.
ImmutableCollections::EMPTY;
ImmutableCollections::EMPTY_LIST;
ImmutableCollections::EMPTY_LIST_NULLS;
ImmutableCollections::EMPTY_SET;
ImmutableCollections::EMPTY_MAP;
This way, we can remove the hard-coded exclusion for AccessFlag$Location::EMPTY_SET added in JDK-8292499, and can avoid similar (spurious) failures in the future.
[2] Move ArchivedEnumApp.java into somewhere under test/jdk, so that if changes in JDK causes failures in CDSHeapVerifier, we can investigate for possible issues before the changes are committed into github.