Add some missing test coverage for merging 'extern "C"' functions with modules.

llvm-svn: 216796
This commit is contained in:
Richard Smith 2014-08-29 22:33:38 +00:00
parent 956366c6f1
commit b602c7f843
5 changed files with 15 additions and 0 deletions

View File

@ -35,3 +35,4 @@ struct HasVirtualFunctions {
struct OverridesVirtualFunctions : HasVirtualFunctions {
void f();
};
extern "C" void ExternCFunction();

View File

@ -13,3 +13,4 @@ struct OverridesVirtualFunctions : HasVirtualFunctions {
void f();
};
extern OverridesVirtualFunctions overrides_virtual_functions;
extern "C" void ExternCFunction();

View File

@ -0,0 +1,3 @@
extern "C" void ExternCFunction();
#include "cxx-decls-imported.h"

View 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"
}

View 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