diff options
| author | Akira Hatanaka <ahatanaka@apple.com> | 2019-07-13 01:47:15 +0000 |
|---|---|---|
| committer | Akira Hatanaka <ahatanaka@apple.com> | 2019-07-13 01:47:15 +0000 |
| commit | 81b03d4a08b16217669fcccb96e7cc436ab3d74a (patch) | |
| tree | 6801c8eaacf2f10f19d882331e8a858eea1f5516 /clang/test/CodeGenObjC/Inputs | |
| parent | c7a1db329849b3a5763545a274ed9c91c592553b (diff) | |
| download | bcm5719-llvm-81b03d4a08b16217669fcccb96e7cc436ab3d74a.tar.gz bcm5719-llvm-81b03d4a08b16217669fcccb96e7cc436ab3d74a.zip | |
[Sema] Diagnose default-initialization, destruction, and copying of
non-trivial C union types
This patch diagnoses uses of non-trivial C unions and structs/unions
containing non-trivial C unions in the following contexts, which require
default-initialization, destruction, or copying of the union objects,
instead of disallowing fields of non-trivial types in C unions, which is
what we currently do:
- function parameters.
- function returns.
- assignments.
- compound literals.
- block captures except capturing of `__block` variables by non-escaping
blocks.
- local and global variable definitions.
- lvalue-to-rvalue conversions of volatile types.
See the discussion in https://reviews.llvm.org/D62988 for more background.
rdar://problem/50679094
Differential Revision: https://reviews.llvm.org/D63753
llvm-svn: 365985
Diffstat (limited to 'clang/test/CodeGenObjC/Inputs')
| -rw-r--r-- | clang/test/CodeGenObjC/Inputs/strong_in_union.h | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/clang/test/CodeGenObjC/Inputs/strong_in_union.h b/clang/test/CodeGenObjC/Inputs/strong_in_union.h deleted file mode 100644 index abe4549055c..00000000000 --- a/clang/test/CodeGenObjC/Inputs/strong_in_union.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef STRONG_IN_UNION_H -#define STRONG_IN_UNION_H -#pragma clang system_header - -typedef union { - id f0; - int *f1; -} U; - -#endif // STRONG_IN_UNION_H |

