diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/OpenMP/declare_simd_messages.cpp | 2 | ||||
-rw-r--r-- | clang/test/PCH/pragma-pack.c | 30 | ||||
-rw-r--r-- | clang/test/PCH/suspicious-pragma-pack.c | 8 | ||||
-rw-r--r-- | clang/test/Parser/pragma-options.c | 2 | ||||
-rw-r--r-- | clang/test/Parser/pragma-options.cpp | 2 | ||||
-rw-r--r-- | clang/test/Parser/pragma-pack.c | 2 | ||||
-rw-r--r-- | clang/test/Sema/Inputs/pragma-pack1.h | 27 | ||||
-rw-r--r-- | clang/test/Sema/Inputs/pragma-pack2.h | 8 | ||||
-rw-r--r-- | clang/test/Sema/pragma-pack.c | 5 | ||||
-rw-r--r-- | clang/test/Sema/suspicious-pragma-pack.c | 49 | ||||
-rw-r--r-- | clang/test/SemaObjC/Inputs/empty.h | 1 | ||||
-rw-r--r-- | clang/test/SemaObjC/suspicious-pragma-pack.m | 6 |
12 files changed, 123 insertions, 19 deletions
diff --git a/clang/test/OpenMP/declare_simd_messages.cpp b/clang/test/OpenMP/declare_simd_messages.cpp index 15971eb14de..af46283f9a5 100644 --- a/clang/test/OpenMP/declare_simd_messages.cpp +++ b/clang/test/OpenMP/declare_simd_messages.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple=x86_64-pc-win32 -verify -fopenmp -x c++ -std=c++11 -fms-extensions %s +// RUN: %clang_cc1 -triple=x86_64-pc-win32 -verify -fopenmp -x c++ -std=c++11 -fms-extensions -Wno-pragma-pack %s // expected-error@+1 {{expected an OpenMP directive}} #pragma omp declare diff --git a/clang/test/PCH/pragma-pack.c b/clang/test/PCH/pragma-pack.c index 47a55700235..7b45e045b39 100644 --- a/clang/test/PCH/pragma-pack.c +++ b/clang/test/PCH/pragma-pack.c @@ -1,21 +1,21 @@ // Test this without pch. -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -DSET -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -DRESET -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -DPUSH -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -DPUSH_POP -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -DPUSH_POP_LABEL +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DSET +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DRESET +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DPUSH +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DPUSH_POP +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DPUSH_POP_LABEL // Test with pch. -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DSET -emit-pch -o %t -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DSET -verify -include-pch %t -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DRESET -emit-pch -o %t -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DRESET -verify -include-pch %t -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH -emit-pch -o %t -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH -verify -include-pch %t -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH_POP -emit-pch -o %t -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH_POP -verify -include-pch %t -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH_POP_LABEL -emit-pch -o %t -// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH_POP_LABEL -verify -include-pch %t +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DSET -emit-pch -o %t +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DSET -verify -include-pch %t +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DRESET -emit-pch -o %t +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DRESET -verify -include-pch %t +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH -emit-pch -o %t +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH -verify -include-pch %t +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP -emit-pch -o %t +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP -verify -include-pch %t +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP_LABEL -emit-pch -o %t +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP_LABEL -verify -include-pch %t #ifndef HEADER #define HEADER diff --git a/clang/test/PCH/suspicious-pragma-pack.c b/clang/test/PCH/suspicious-pragma-pack.c new file mode 100644 index 00000000000..01a66af34bb --- /dev/null +++ b/clang/test/PCH/suspicious-pragma-pack.c @@ -0,0 +1,8 @@ +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -verify -emit-pch -o %t +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -verify -include-pch %t + +#ifndef HEADER +#define HEADER +#pragma pack (push, 1) +#endif +// expected-warning@-2 {{unterminated '#pragma pack (push, ...)' at end of file}} diff --git a/clang/test/Parser/pragma-options.c b/clang/test/Parser/pragma-options.c index d168a2751a2..a35f0b087eb 100644 --- a/clang/test/Parser/pragma-options.c +++ b/clang/test/Parser/pragma-options.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -verify %s +// RUN: %clang_cc1 -triple i386-apple-darwin9 -Wno-pragma-pack -fsyntax-only -verify %s /* expected-warning {{expected 'align' following '#pragma options'}} */ #pragma options /* expected-warning {{expected '=' following '#pragma options align'}} */ #pragma options align diff --git a/clang/test/Parser/pragma-options.cpp b/clang/test/Parser/pragma-options.cpp index 84cd38dfb3c..8f5a2152c7b 100644 --- a/clang/test/Parser/pragma-options.cpp +++ b/clang/test/Parser/pragma-options.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -verify %s +// RUN: %clang_cc1 -triple i386-apple-darwin9 -Wno-pragma-pack -fsyntax-only -verify %s // expected-no-diagnostics class C { diff --git a/clang/test/Parser/pragma-pack.c b/clang/test/Parser/pragma-pack.c index 0859f4157ce..d2aefaa888f 100644 --- a/clang/test/Parser/pragma-pack.c +++ b/clang/test/Parser/pragma-pack.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -verify %s +// RUN: %clang_cc1 -fsyntax-only -Wno-pragma-pack -verify %s // Note that this puts the expected lines before the directives to work around // limitations in the -verify mode. diff --git a/clang/test/Sema/Inputs/pragma-pack1.h b/clang/test/Sema/Inputs/pragma-pack1.h new file mode 100644 index 00000000000..abbf8a8609f --- /dev/null +++ b/clang/test/Sema/Inputs/pragma-pack1.h @@ -0,0 +1,27 @@ + +#ifndef NO_RECORD_1 +struct ReceivesPragma { }; +#endif + +#ifdef SET_FIRST_HEADER +#pragma pack (16) +#ifndef SET_SECOND_HEADER +// expected-note@-2 2 {{previous '#pragma pack' directive that modifies alignment is here}} +#else +// expected-note@-4 1 {{previous '#pragma pack' directive that modifies alignment is here}} +#endif +// expected-warning@+3 {{non-default #pragma pack value changes the alignment of struct or union members in the included file}} +#endif + +#include "pragma-pack2.h" + +#ifdef SET_SECOND_HEADER +// expected-warning@-3 {{the current #pragma pack aligment value is modified in the included file}} +#endif + +#ifdef PUSH_POP_FIRST_HEADER +// This is fine, we don't change the current value. +#pragma pack (push, 4) + +#pragma pack (pop) +#endif diff --git a/clang/test/Sema/Inputs/pragma-pack2.h b/clang/test/Sema/Inputs/pragma-pack2.h new file mode 100644 index 00000000000..a41621544d7 --- /dev/null +++ b/clang/test/Sema/Inputs/pragma-pack2.h @@ -0,0 +1,8 @@ + +#ifndef NO_RECORD_2 +struct S { int x; }; +#endif + +#ifdef SET_SECOND_HEADER +#pragma pack (8) // expected-note 2 {{previous '#pragma pack' directive that modifies alignment is here}} +#endif diff --git a/clang/test/Sema/pragma-pack.c b/clang/test/Sema/pragma-pack.c index e93ce42148c..84a946368ff 100644 --- a/clang/test/Sema/pragma-pack.c +++ b/clang/test/Sema/pragma-pack.c @@ -25,3 +25,8 @@ #pragma pack(pop, 16) /* expected-warning {{value of #pragma pack(show) == 16}} */ #pragma pack(show) + +// Warn about unbalanced pushes. +#pragma pack (push,4) // expected-warning {{unterminated '#pragma pack (push, ...)' at end of file}} +#pragma pack (push) // expected-warning {{unterminated '#pragma pack (push, ...)' at end of file}} +#pragma pack () diff --git a/clang/test/Sema/suspicious-pragma-pack.c b/clang/test/Sema/suspicious-pragma-pack.c new file mode 100644 index 00000000000..5990c785fce --- /dev/null +++ b/clang/test/Sema/suspicious-pragma-pack.c @@ -0,0 +1,49 @@ +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DSAFE -verify %s +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DSAFE -verify %s +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DPUSH_SET_HERE -verify %s +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DRESET_HERE -DSAFE -verify %s +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DSET_FIRST_HEADER -DWARN_MODIFIED_HEADER -verify %s +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DRESET_HERE -DSET_FIRST_HEADER -DWARN_MODIFIED_HEADER -verify %s +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DPUSH_SET_HERE -DSET_FIRST_HEADER -DWARN_MODIFIED_HEADER -verify %s +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DPUSH_SET_HERE -DSET_SECOND_HEADER -DWARN_MODIFIED_HEADER -verify %s +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DPUSH_SET_HERE -DSET_FIRST_HEADER -DSET_SECOND_HEADER -DWARN_MODIFIED_HEADER -verify %s + +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_POP_FIRST_HEADER -DSAFE -verify %s + +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_SET_HERE -DNO_RECORD_1 -DNO_RECORD_2 -DSAFE -verify %s +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_SET_HERE -DNO_RECORD_1 -verify %s + +#ifdef SAFE +// expected-no-diagnostics +#endif + +#ifdef PUSH_HERE +#pragma pack (push) +#endif + +#ifdef PUSH_SET_HERE +#pragma pack (push, 4) +#ifndef SAFE +// expected-note@-2 {{previous '#pragma pack' directive that modifies alignment is here}} +// expected-warning@+9 {{non-default #pragma pack value changes the alignment of struct or union members in the included file}} +#endif +#endif + +#ifdef RESET_HERE +#pragma pack (4) +#pragma pack () // no warning after reset as the value is default. +#endif + +#include "pragma-pack1.h" + +#ifdef WARN_MODIFIED_HEADER +// expected-warning@-3 {{the current #pragma pack aligment value is modified in the included file}} +#endif + +#ifdef PUSH_SET_HERE +#pragma pack (pop) +#endif + +#ifdef PUSH_HERE +#pragma pack (pop) +#endif diff --git a/clang/test/SemaObjC/Inputs/empty.h b/clang/test/SemaObjC/Inputs/empty.h new file mode 100644 index 00000000000..6b3def4d7ae --- /dev/null +++ b/clang/test/SemaObjC/Inputs/empty.h @@ -0,0 +1 @@ +struct S { int x; }; diff --git a/clang/test/SemaObjC/suspicious-pragma-pack.m b/clang/test/SemaObjC/suspicious-pragma-pack.m new file mode 100644 index 00000000000..6c33e0ed3e9 --- /dev/null +++ b/clang/test/SemaObjC/suspicious-pragma-pack.m @@ -0,0 +1,6 @@ +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I%S/Inputs -verify %s + +#pragma pack (push, 1) // expected-note {{previous '#pragma pack' directive that modifies alignment is here}} +#import "empty.h" // expected-warning {{non-default #pragma pack value changes the alignment of struct or union members in the included file}} + +#pragma pack (pop) |