1 // RUN: %clang_cc1 -triple s390x-linux-gnu -O1 -emit-llvm %s -o - 2>&1 | FileCheck %s 2 // 3 // Test that an underaligned 16 byte __sync gives a warning. 4 5 #include <stdint.h> 6 7 __int128 Ptr __attribute__((aligned(8))); 8 f1()9__int128 f1() { 10 // CHECK: warning: __sync builtin operation must have natural alignment (consider using __atomic) 11 return __sync_fetch_and_add(&Ptr, 1); 12 } 13 f2()14__int128 f2() { 15 // CHECK: warning: __sync builtin operation must have natural alignment (consider using __atomic) 16 return __sync_sub_and_fetch(&Ptr, 1); 17 } 18 f3()19__int128 f3() { 20 // CHECK: warning: __sync builtin operation must have natural alignment (consider using __atomic) 21 return __sync_val_compare_and_swap(&Ptr, 0, 1); 22 } 23 f4()24void f4() { 25 // CHECK: warning: __sync builtin operation must have natural alignment (consider using __atomic) 26 __sync_lock_release(&Ptr); 27 } 28