]> granicus.if.org Git - clang/commitdiff
Add a struct-size check for modules when dealing with module-private fields
authorDouglas Gregor <dgregor@apple.com>
Tue, 13 Sep 2011 15:37:05 +0000 (15:37 +0000)
committerDouglas Gregor <dgregor@apple.com>
Tue, 13 Sep 2011 15:37:05 +0000 (15:37 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139597 91177308-0d34-0410-b5e6-96231b3b80d8

test/Modules/module-private.cpp

index 539e591e093456e15f736e00e62300c321961d3f..81b2aca3fb66c0ce2c4efd059c0cc7660748a563 100644 (file)
@@ -43,7 +43,7 @@ inline void test_f0_in_right() {
 
 struct VisibleStruct {
   __module_private__ int field;
-  __module_private__ void setField(int f);
+  __module_private__ virtual void setField(int f);
 };
 
 #else
@@ -129,4 +129,12 @@ void local_var_private(__module_private__ int param) { // expected-error{{parame
 
   typedef __module_private__ int local_typedef; // expected-error{{typedef 'local_typedef' cannot be declared __module_private__}}
 }
+
+// Check struct size
+struct LikeVisibleStruct {
+  int field;
+  virtual void setField(int f);
+};
+
+int check_struct_size[sizeof(VisibleStruct) == sizeof(LikeVisibleStruct)? 1 : -1];
 #endif