User-defined reductions declared in a module were not visible to programs that imported the module via USE statements, causing valid code to be incorrectly rejected. The reduction identifier defined in the module scope wasn't being found during semantic analysis of the main program. Ref: OpenMP Spec 5.1 _"If a directive appears in the specification part of a module then the behavior is as if that directive, with the variables, types and procedures that have PRIVATE accessibility omitted, appears in the specification part of any compilation unit that references the module unless otherwise specified "_ Fixes : [https://github.com/llvm/llvm-project/issues/176279](https://github.com/llvm/llvm-project/issues/176279) Co-authored-by: Chandra Ghale <ghale@pe31.hpc.amslabs.hpecorp.net>