blob: 081b515f2f1474f421905407cacc922a5f2de3ac [file] [edit]
// RUN: rm -rf %t && mkdir %t
// RUN: %clang_cc1 -x objective-c++ %s -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -verify -std=c++11
// RUN: %clang_cc1 -x objective-c++ %s -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -verify -std=c++11 -fexperimental-new-constant-interpreter
// expected-no-diagnostics
struct S { int a; };
extern const int variable;
extern const S vars;
constexpr int test() { return variable; }
constexpr int test2() { return vars.a; }
struct C {
static const int variable;
static const S vars;
};
/// The module contains a definition for 'variable', so the function call below
/// should work and return the correct value.
@import redecl1;
static_assert(test() == 120, "");
static_assert(test2() == 12, "");