Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Unified Diff: ppapi/tests/test_struct_sizes.c

Issue 5674004: Add compile assertions to enforce the sizes of all structs and enums in the C... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« ppapi/c/dev/pp_video_dev.h ('K') | « ppapi/tests/test_cpp_includes.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/tests/test_struct_sizes.c
===================================================================
--- ppapi/tests/test_struct_sizes.c (revision 0)
+++ ppapi/tests/test_struct_sizes.c (revision 0)
@@ -0,0 +1,28 @@
+/* Copyright (c) 2010 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * This test ensures (at compile time) that some types have the expected size in
+ * C. The purpose is to ensure that the ABI of PPAPI is known, consistent, and
+ * stable. Only structs that have architecture-dependent size are checked by
+ * this test. These structs use at least one type which differs in size between
+ * 64-bit and 32-bit (e.g. pointers or long). By convention, we require other
+ * types to be of consistent size on 32-bit and 64-bit architectures.
+ */
+
+#include "ppapi/tests/all_c_includes.h"
+
+#if !defined(__native_client__) && (defined(_M_X64) || defined(__x86_64__))
+/* This section is for 64-bit compilation on Windows, Mac, and Linux. Native
+ client follows ILP32 even if -m64 is used, so NaCl code is explicitly treated
+ as 32-bit. This means pointers are always 4 bytes in native client, and it
+ matches Win32 (see below).
+ */
+#include "ppapi/tests/arch_dependent_sizes_64.h"
+#else
+/* This section is for compilation on 32-bit targets plus native client (in both
+ 32-bit and 64-bit mode, since native client always conforms to ILP32).
+ */
+#include "ppapi/tests/arch_dependent_sizes_32.h"
+#endif
+
Property changes on: ppapi/tests/test_struct_sizes.c
___________________________________________________________________
Added: svn:eol-style
+ LF
« ppapi/c/dev/pp_video_dev.h ('K') | « ppapi/tests/test_cpp_includes.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698