[flang-commits] [flang] [flang] Do not write implicit SAVE attribute into the mod file. (PR #67215)
    Slava Zakharin via flang-commits 
    flang-commits at lists.llvm.org
       
    Sat Sep 23 14:14:37 PDT 2023
    
    
  
================
@@ -244,6 +244,14 @@ bool ModFileWriter::PutComponents(const Symbol &typeSymbol) {
   }
 }
 
+// Return the symbol's attributes that should be written
+// into the mod file.
+static Attrs getSymbolAttrsToWrite(const Symbol &symbol) {
+  // Is SAVE attribute is implicit, it should be omitted
+  // to not violate F202x C862 for a common block member.
+  return symbol.attrs() & ~(symbol.implicitAttrs() & Attrs{Attr::SAVE});
----------------
vzakhari wrote:
I am not sure about this.  For example:
```
module equiv
  private
  real :: p
end module
```
`p` gets an implicit `PRIVATE` attribute resulting in this mod file:
```
module equiv
real(4),private::p
end
```
If I filter it out, I will get this:
```
module equiv
real(4)::p
end
```
https://github.com/llvm/llvm-project/pull/67215
    
    
More information about the flang-commits
mailing list