]> granicus.if.org Git - clang/commitdiff
Add some missing test coverage for merging 'extern "C"' functions with modules.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 29 Aug 2014 22:33:38 +0000 (22:33 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 29 Aug 2014 22:33:38 +0000 (22:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216796 91177308-0d34-0410-b5e6-96231b3b80d8

test/Modules/Inputs/cxx-decls-imported.h
test/Modules/Inputs/cxx-decls-merged.h
test/Modules/Inputs/cxx-decls-premerged.h [new file with mode: 0644]
test/Modules/Inputs/module.map
test/Modules/cxx-decls.cpp

index ccf1cb2b359623996f9797181221fcf721b28be8..7677511103c3cf1e62adc9a903b8e0a235a0e27d 100644 (file)
@@ -35,3 +35,4 @@ struct HasVirtualFunctions {
 struct OverridesVirtualFunctions : HasVirtualFunctions {
   void f();
 };
+extern "C" void ExternCFunction();
index 3f9da1a55ee3d303038048ee794f5c5a98229bc4..8ba2df63cae3e53044ccfb5f91a46627ab4f83f9 100644 (file)
@@ -13,3 +13,4 @@ struct OverridesVirtualFunctions : HasVirtualFunctions {
   void f();
 };
 extern OverridesVirtualFunctions overrides_virtual_functions;
+extern "C" void ExternCFunction();
diff --git a/test/Modules/Inputs/cxx-decls-premerged.h b/test/Modules/Inputs/cxx-decls-premerged.h
new file mode 100644 (file)
index 0000000..064fb9e
--- /dev/null
@@ -0,0 +1,3 @@
+extern "C" void ExternCFunction();
+
+#include "cxx-decls-imported.h"
index 72a65cf8718c15674728184139a86ed413a8d938..e8011c70555f08ee1728f838d0ea9a82d5941485 100644 (file)
@@ -246,6 +246,10 @@ module cxx_decls {
   }
 }
 
+module cxx_decls_premerged {
+  header "cxx-decls-premerged.h"
+}
+
 module cxx_decls_merged {
   header "cxx-decls-merged.h"
 }
index ee196cfc33b8854352a3bd9984568d14ae0757b5..77982e46fba656f6b8988d25e2ebf4def4818566 100644 (file)
@@ -41,5 +41,11 @@ int name_for_linkage_test = use_name_for_linkage(name_for_linkage);
 int overrides_virtual_functions_test =
     use_overrides_virtual_functions(overrides_virtual_functions);
 
+void use_extern_c_function() { ExternCFunction(); }
+
+@import cxx_decls_premerged;
+
+void use_extern_c_function_2() { ExternCFunction(); }
+
 // CHECK: VarDecl [[mergeUsedFlag:0x[0-9a-f]*]] {{.*}} in cxx_decls.imported used mergeUsedFlag
 // CHECK: VarDecl {{0x[0-9a-f]*}} prev [[mergeUsedFlag]] {{.*}} in cxx_decls_merged used mergeUsedFlag