diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-03-23 00:27:18 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-03-23 00:27:18 +0000 |
commit | 04d05b5fa7fd19ae79ec9e9b9dd9ec7a5a68d879 (patch) | |
tree | b481d7fe81caf3341d137495defdfd5847c7370a /clang/test/Modules | |
parent | 957a2944dfce0672e349516dc5ae3b6474fb71db (diff) | |
download | bcm5719-llvm-04d05b5fa7fd19ae79ec9e9b9dd9ec7a5a68d879.tar.gz bcm5719-llvm-04d05b5fa7fd19ae79ec9e9b9dd9ec7a5a68d879.zip |
If an update record makes a declaration interesting, pass it to the consumer.
llvm-svn: 204550
Diffstat (limited to 'clang/test/Modules')
-rw-r--r-- | clang/test/Modules/Inputs/cxx-irgen-left.h | 4 | ||||
-rw-r--r-- | clang/test/Modules/Inputs/cxx-irgen-top.h | 4 | ||||
-rw-r--r-- | clang/test/Modules/cxx-irgen.cpp | 9 |
3 files changed, 14 insertions, 3 deletions
diff --git a/clang/test/Modules/Inputs/cxx-irgen-left.h b/clang/test/Modules/Inputs/cxx-irgen-left.h index d2f9d7fe102..970ac764fc4 100644 --- a/clang/test/Modules/Inputs/cxx-irgen-left.h +++ b/clang/test/Modules/Inputs/cxx-irgen-left.h @@ -1,3 +1,7 @@ #include "cxx-irgen-top.h" S<int> s; + +inline int instantiate_min() { + return min(1, 2); +} diff --git a/clang/test/Modules/Inputs/cxx-irgen-top.h b/clang/test/Modules/Inputs/cxx-irgen-top.h index 05f8e19ee1b..8113e94def5 100644 --- a/clang/test/Modules/Inputs/cxx-irgen-top.h +++ b/clang/test/Modules/Inputs/cxx-irgen-top.h @@ -4,3 +4,7 @@ template<typename T> struct S { }; extern template struct S<int>; + +template<typename T> T min(T a, T b) { return a < b ? a : b; } + +extern decltype(min(1, 2)) instantiate_min_decl; diff --git a/clang/test/Modules/cxx-irgen.cpp b/clang/test/Modules/cxx-irgen.cpp index 91657fdc0eb..7a42cb6b8c7 100644 --- a/clang/test/Modules/cxx-irgen.cpp +++ b/clang/test/Modules/cxx-irgen.cpp @@ -1,15 +1,18 @@ // RUN: rm -rf %t -// RUN: %clang_cc1 -fmodules -x objective-c++ -fmodules-cache-path=%t -I %S/Inputs -triple %itanium_abi_triple -disable-llvm-optzns -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -fmodules -x objective-c++ -std=c++11 -fmodules-cache-path=%t -I %S/Inputs -triple %itanium_abi_triple -disable-llvm-optzns -emit-llvm -o - %s | FileCheck %s // FIXME: When we have a syntax for modules in C++, use that. @import cxx_irgen_top; @import cxx_irgen_left; @import cxx_irgen_right; -// CHECK: define available_externally hidden i32 @_ZN1SIiE1gEv({{.*}} #[[ALWAYS_INLINE:.*]] align +// CHECK-DAG: define available_externally hidden i32 @_ZN1SIiE1gEv({{.*}} #[[ALWAYS_INLINE:.*]] align int a = S<int>::g(); -// CHECK: define available_externally i32 @_ZN1SIiE1fEv({{.*}} #[[ALWAYS_INLINE]] align +// CHECK-DAG: define available_externally i32 @_ZN1SIiE1fEv({{.*}} #[[ALWAYS_INLINE]] align int b = h(); +// CHECK-DAG: define linkonce_odr i32 @_Z3minIiET_S0_S0_(i32 +int c = min(1, 2); + // CHECK: attributes #[[ALWAYS_INLINE]] = {{.*}} alwaysinline |