tree f8b15171e92d056e9006bcbe36d534a9d73155d9
parent 2b8bff6f66fd90ac658d0ae0d7f9a83ffadfd77f
author Jan Svoboda <jan_svoboda@apple.com> 1747942432 -0700
committer GitHub <noreply@github.com> 1747942432 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoL3wgCRC1aQ7uu5UhlAAANqMQAEfy7PPXuS57Nua5GSm4IqEI
 puSPdknU4WAw6wMoSBrcCgFEC3ebVoLAtTuOlgpYC1JJeY2SThUCwf+1W187y+7p
 G7uWXY1IjNrjd+kAjXeXU77XnL3ho3HdwMjgHWxGFApI70PbH2YsbcvBh6tw37//
 1G/DVtYGWRKHgqEOB9UkkLHrfy0/aOBnelSP9bL42hT5kPS+Jxx3afI6udxAxJyh
 DYmf6dc2qAHLSAA2g+FzqJHP65jZxegS36vT8pzw3Yw+ejUE5Dv96fPItZfxItdM
 J5DIzGekzDacKWZCe0sZZGNgEfYTVgY7mBZE7yUhSsGhKnOVJ03fbJQScxzFbZRt
 DBihtXCgPt+XNXWnOz0b1YXrj6VrKy1uq8zhNMfCKhOFZcPFxTz173D1WLBfeDel
 8TFPhBtzaStUHVHKeX7u77F+U3YB3hbLO2AefwgH945CdIZlA9LUr0EUo3kfuTyF
 7V/QjTHiQJkIFlBZvUfxOBMIV3lxkwOjUv1p1HvitHrW8bik/9TbdV2WHwYxBEvX
 H/WyieuVOildFlpWiJza53ffdv1ZKXJbsDDTPgYXVRQjsKsKs2hBoZd8L7uJEAr5
 rsR0J4qTHd095s/uplsuQgjNBwhvuANLoBq0+aDVkSppw3p/I65sYUjsLcQfhuM6
 QpCjDOufDXRHobmzLz7G
 =10eh
 -----END PGP SIGNATURE-----
 

[clang] Remove intrusive reference count from `DiagnosticOptions` (#139584)

The `DiagnosticOptions` class is currently intrusively
reference-counted, which makes reasoning about its lifetime very
difficult in some cases. For example, `CompilerInvocation` owns the
`DiagnosticOptions` instance (wrapped in `llvm::IntrusiveRefCntPtr`) and
only exposes an accessor returning `DiagnosticOptions &`. One would
think this gives `CompilerInvocation` exclusive ownership of the object,
but that's not the case:

```c++
void shareOwnership(CompilerInvocation &CI) {
  llvm::IntrusiveRefCntPtr<DiagnosticOptions> CoOwner = &CI.getDiagnosticOptions();
  // ...
}
```

This is a perfectly valid pattern that is being actually used in the
codebase.

I would like to ensure the ownership of `DiagnosticOptions` by
`CompilerInvocation` is guaranteed to be exclusive. This can be
leveraged for a copy-on-write optimization later on. This PR changes
usages of `DiagnosticOptions` across `clang`, `clang-tools-extra` and
`lldb` to not be intrusively reference-counted.