This implements the DWARF 5 feature described in:
http://dwarfstd.org/ShowIssue.php?issue=141212.1
To support recognizing anonymous structs:
struct A { 
  struct { // Anonymous struct 
      int y;
  };  
} a;This patch adds a new (DI)flag to LLVM metadata:
ExportSymbols
Currently there is an ambiguity between unnamed struct and anonymous structs in some cases, see D66175 which implements n incomplete work-around and explains the limitations in the code comments.
The re-use of bit 16 is okay, as the comment says, this Apple-specific flag is not in use and there are not bitcode compatibility concerns.