diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2013-09-11 03:49:34 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2013-09-11 03:49:34 +0000 |
| commit | aa76981400a6b0dee6e42b4d456f2b605140f090 (patch) | |
| tree | 3e93752d94c56157cd0660161528464814aa40c9 /clang/lib/Sema | |
| parent | de432143bddd63bea0424853886b427dce7aff44 (diff) | |
| download | bcm5719-llvm-aa76981400a6b0dee6e42b4d456f2b605140f090.tar.gz bcm5719-llvm-aa76981400a6b0dee6e42b4d456f2b605140f090.zip | |
volatile types are not trivially copyable.
PR17123.
llvm-svn: 190484
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 82eca73e8c2..cba5ffe5fa4 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -1038,7 +1038,8 @@ ExprResult Sema::SemaAtomicOpsOverloaded(ExprResult TheCallResult, return ExprError(); } - if (!IsC11 && !AtomTy.isTriviallyCopyableType(Context)) { + if (!IsC11 && !AtomTy.isTriviallyCopyableType(Context) && + !AtomTy->isScalarType()) { // For GNU atomics, require a trivially-copyable type. This is not part of // the GNU atomics specification, but we enforce it for sanity. Diag(DRE->getLocStart(), diag::err_atomic_op_needs_trivial_copy) |

