The new tests fail with jdk3.* classes because of the handling of synthetic attribute vs flag. With a ClassReader->ClassWriter chain, ClassReader sets the ACC_SYNTHETIC_ATTRIBUTE pseudo access flag to know whether a Synthetic attribute was originally present. But this does not work with ASMifier (no ClassReader involved). To fix this I removed the ACC_SYNTHETIC_ATTRIBUTE pseudo access flag, and instead generate either the attribute or the access flag in ClassWriter, depending on the class version. This means a ClassReader->ClassWriter chain can change the attribute to an access flag, or vice versa, only with "strange" classes where the flag is used before 1.5, or the attribute is used after 1.5. I believe this does not introduce a regression for issue #314934 (closed), which was fixed with 46b53a9d.