diff options
author | Douglas Gregor <dgregor@apple.com> | 2013-04-16 15:41:08 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2013-04-16 15:41:08 +0000 |
commit | 8997dac30afea00f6b99e438c6fb235a1cfedd6a (patch) | |
tree | b1a02eabf9b27c4d5beba5544e7516ef35caa680 /clang/test/Sema/atomic-expr.c | |
parent | d1b6778e69373405af71645e3ac826e586b54e9d (diff) | |
download | bcm5719-llvm-8997dac30afea00f6b99e438c6fb235a1cfedd6a.tar.gz bcm5719-llvm-8997dac30afea00f6b99e438c6fb235a1cfedd6a.zip |
Fix handling of atomic shift operations, from Serge Pavlov.
llvm-svn: 179600
Diffstat (limited to 'clang/test/Sema/atomic-expr.c')
-rw-r--r-- | clang/test/Sema/atomic-expr.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/clang/test/Sema/atomic-expr.c b/clang/test/Sema/atomic-expr.c new file mode 100644 index 00000000000..ecc04c4c68d --- /dev/null +++ b/clang/test/Sema/atomic-expr.c @@ -0,0 +1,47 @@ +// RUN: %clang_cc1 %s -verify -fsyntax-only +// expected-no-diagnostics + +_Atomic(unsigned int) data1; +int _Atomic data2; + +// Shift operations + +int func_01 (int x) { + return data1 << x; +} + +int func_02 (int x) { + return x << data1; +} + +int func_03 (int x) { + return data2 << x; +} + +int func_04 (int x) { + return x << data2; +} + +int func_05 () { + return data2 << data1; +} + +int func_06 () { + return data1 << data2; +} + +void func_07 (int x) { + data1 <<= x; +} + +void func_08 (int x) { + data2 <<= x; +} + +void func_09 (int* xp) { + *xp <<= data1; +} + +void func_10 (int* xp) { + *xp <<= data2; +} |