This is the approach of treating everything that looks like an object pointer as an actual object pointer in the GC, avoiding the need to store metainfo about object liveness. The downside to this approach is that it is slow, because extra checks are needed. For example, we trivially know that 17
is not a pointer, since it is outside the heap space, but 0x471148
might well be an object, if it is in the heap range, but could equally well be a constant. Conservative GC also potentially suffers from unintentional object retention if a constant happens to point to an object on the heap. It also severely limits the ability to move objects in memory.
See also Exact garbage collection, Livemap, and Safepoint.