All generated runtime type information should go in rodata, but for TypeInfo_Class objects this can't be done as we set the monitor field on it in synchronized() statements.
Take any example of synchronized(typeid(Foo)) { ... }
Perhaps the __monitor field should be a static slot outside of ClassInfo. This may also pave the way for a more pay-as-you-go model too where the monitor is omitted unless the class declaration is marked with @monitor.
Comment #1 by robert.schadek — 2024-12-13T18:53:42Z