Hello everyone, this patch implements module-wide gcc directive support to apply attributes to the whole module. Patch closely follows how plain SAVE statement is implemented with seen_save/gfc_save_all() by using "mod_ext_attr" bitfield in a current namespace. There are certain complications how WEAK attribute could be safely applied to non local symbols, applying WEAK attribute requires to delay this until build_function_decl() sets the final attr.access field. For a time being I opted out to explicitly reject setting the NO_ARG_CHECK attribute for the whole module. There should not be a legitimate case to apply it for every dummy argument. One DEPRECATED diagnostic (for deprecated parameter use case inside the same module) did not carry out from the original gfortran.dg/attr_deprecated.f90 testcase. Not sure how to tackle it yet, parsing order is a bit confusing. Giving diagnostics for deprecated symbols inside the whole module marked as deprecated seems to be a bit excessive. Only giving diagnostics for the actual use cases of such marked module components would seem to be more intuitive. Also from the original testcase: use m ! { dg-warning "Using parameter 'parm' declared at .1. is deprecated" } shouldn't diagnostic prefer to report "use" location instead of declaration, since it is more important for the user? The declaration location could be additionally reported as dg-note using some helper function that checks if the symbol is "imported at (1)" versus "declared at (1)". Regtested cleanly on x86_64-pc-linux-gnu. Regards, Rimvydas