diff options
author | yronglin <yronglin777@gmail.com> | 2024-09-12 06:29:48 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-12 06:29:48 +0800 |
commit | 060137038ab9246b377e190ae3c6f272fa57cbfc (patch) | |
tree | 21ae56cacd8c14ea29f8aaee08894fdd17885cb2 /clang/lib/Basic/FileManager.cpp | |
parent | c98d6c2e4293a4ab352e08d49dac3c1357cbbc6a (diff) | |
download | llvm-060137038ab9246b377e190ae3c6f272fa57cbfc.zip llvm-060137038ab9246b377e190ae3c6f272fa57cbfc.tar.gz llvm-060137038ab9246b377e190ae3c6f272fa57cbfc.tar.bz2 |
Reapply "[Clang][CWG1815] Support lifetime extension of temporary created by aggregate initialization using a default member initializer" (#108039)
The PR reapply https://github.com/llvm/llvm-project/pull/97308.
- Implement [CWG1815](https://wg21.link/CWG1815): Support lifetime
extension of temporary created by aggregate initialization using a
default member initializer.
- Fix crash that introduced in
https://github.com/llvm/llvm-project/pull/97308. In
`InitListChecker::FillInEmptyInitForField`, when we enter
rebuild-default-init context, we copy all the contents of the parent
context to the current context, which will cause the `MaybeODRUseExprs`
to be lost. But we don't need to copy the entire context, only the
`DelayedDefaultInitializationContext` was required, which is used to
build `SourceLocExpr`, etc.
---------
Signed-off-by: yronglin <yronglin777@gmail.com>
Diffstat (limited to 'clang/lib/Basic/FileManager.cpp')
0 files changed, 0 insertions, 0 deletions