[clang][IFS] Adds support for more decl types in clang interface stubs.
Adding support for processing the following Decls: NonTypeTemplateParmDecl,
CXXConversionDecl, UnresolvedUsingValueDecl, UsingDecl, UsingShadowDecl,
TypeAliasTemplateDecl, TypeAliasDecl, VarTemplateDecl,
VarTemplateSpecializationDecl, UsingDirectiveDecl, TemplateTemplateParmDecl,
ClassTemplatePartialSpecializationDecl, IndirectFieldDecl.
Also, this allows for processing NamedDecls that don't have an identifier and
skips over VarDecls that are dependent on template types.
Differential Revision: https://reviews.llvm.org/D69995
2019-11-09 09:21:28 +08:00
|
|
|
// REQUIRES: x86-registered-target
|
2019-11-14 12:58:09 +08:00
|
|
|
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs %s | FileCheck %s
|
[clang][IFS] Adds support for more decl types in clang interface stubs.
Adding support for processing the following Decls: NonTypeTemplateParmDecl,
CXXConversionDecl, UnresolvedUsingValueDecl, UsingDecl, UsingShadowDecl,
TypeAliasTemplateDecl, TypeAliasDecl, VarTemplateDecl,
VarTemplateSpecializationDecl, UsingDirectiveDecl, TemplateTemplateParmDecl,
ClassTemplatePartialSpecializationDecl, IndirectFieldDecl.
Also, this allows for processing NamedDecls that don't have an identifier and
skips over VarDecls that are dependent on template types.
Differential Revision: https://reviews.llvm.org/D69995
2019-11-09 09:21:28 +08:00
|
|
|
|
|
|
|
// CHECK: --- !experimental-ifs-v1
|
|
|
|
// CHECK-NEXT: IfsVersion: 1.0
|
|
|
|
// CHECK-NEXT: Triple: x86_64-unknown-linux-gnu
|
|
|
|
// CHECK-NEXT: ObjectFileFormat: ELF
|
|
|
|
// CHECK-NEXT: Symbols:
|
|
|
|
// CHECK-NEXT: "a" : { Type: Object, Size: 4 }
|
|
|
|
// CHECK-NEXT: ...
|
|
|
|
|
|
|
|
template<typename T, T v> struct S9 {
|
|
|
|
static constexpr T value = v;
|
|
|
|
};
|
|
|
|
template<typename T> struct S0 : public S9<bool, true> { };
|
|
|
|
template<typename T> constexpr bool CE2 = S0<T>::value;
|
2019-11-14 12:58:09 +08:00
|
|
|
int a = CE2<int>;
|