summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema/Inputs/pragma-pack1.h
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2017-07-19 11:30:41 +0000
committerAlex Lorenz <arphaman@gmail.com>2017-07-19 11:30:41 +0000
commit287f684c18b74faebd913cc9d11eb3e0feab5198 (patch)
treed4285b9cc8e60f5a63bf4caa82d3463d97119abe /clang/test/Sema/Inputs/pragma-pack1.h
parent37eadd55f71c4317ba26e294a9ae976c88e52140 (diff)
downloadbcm5719-llvm-287f684c18b74faebd913cc9d11eb3e0feab5198.tar.gz
bcm5719-llvm-287f684c18b74faebd913cc9d11eb3e0feab5198.zip
Recommit r308327: Add a warning for missing '#pragma pack (pop)'
and suspicious uses of '#pragma pack' in included files This commit adds a new -Wpragma-pack warning. It warns in the following cases: - When a translation unit is missing terminating #pragma pack (pop) directives. - When entering an included file if the current alignment value as determined by '#pragma pack' directives is different from the default alignment value. - When leaving an included file that changed the state of the current alignment value. rdar://10184173 Differential Revision: https://reviews.llvm.org/D35484 llvm-svn: 308441
Diffstat (limited to 'clang/test/Sema/Inputs/pragma-pack1.h')
-rw-r--r--clang/test/Sema/Inputs/pragma-pack1.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/Sema/Inputs/pragma-pack1.h b/clang/test/Sema/Inputs/pragma-pack1.h
new file mode 100644
index 00000000000..40e7ad18b2c
--- /dev/null
+++ b/clang/test/Sema/Inputs/pragma-pack1.h
@@ -0,0 +1,23 @@
+
+#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 might change 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
OpenPOWER on IntegriCloud