If an annotation name is not registered with the manager, the format of
the annotation data is unknown. Such annotations cannot be written to
the SUIF output file, and when they are printed the data is just shown
as a hexadecimal value. If the data needs to be deallocated, you must
do so explicitly before the annotations are deleted. The library cannot
automatically update the data in unregistered annotations, and the
cloning functions do not copy them. The immeds
method returns
NULL
for unregistered annotations and set_immeds
will not
work at all for them.
Due to these limitations, annotations should generally be registered
with the manager. There are, however, many situations where
unregistered annotations are useful. Because they are not written out,
the data in these annotations does not have to be converted to
immed
lists. This means that they may contain totally arbitrary
data structures. The drawback is that it is entirely up to you to
ensure that the annotation data is maintained properly.