xref: /minix3/external/bsd/llvm/dist/clang/test/SemaTemplate/default-expr-arguments-2.cpp (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -ast-dump %s 2>&1 | FileCheck %s
2*f4a2713aSLionel Sambuc 
3*f4a2713aSLionel Sambuc // This is a wacky test to ensure that we're actually instantiating
4*f4a2713aSLionel Sambuc // the default arguments of the constructor when the function type is
5*f4a2713aSLionel Sambuc // otherwise non-dependent.
6*f4a2713aSLionel Sambuc namespace PR6733 {
7*f4a2713aSLionel Sambuc   template <class T>
8*f4a2713aSLionel Sambuc   class bar {
9*f4a2713aSLionel Sambuc   public: enum { kSomeConst = 128 };
bar(int x=kSomeConst)10*f4a2713aSLionel Sambuc     bar(int x = kSomeConst) {}
11*f4a2713aSLionel Sambuc   };
12*f4a2713aSLionel Sambuc 
13*f4a2713aSLionel Sambuc   // CHECK: FunctionDecl{{.*}}f 'void (void)'
f()14*f4a2713aSLionel Sambuc   void f() {
15*f4a2713aSLionel Sambuc     // CHECK: VarDecl{{.*}}tmp 'bar<int>'
16*f4a2713aSLionel Sambuc     // CHECK: CXXDefaultArgExpr{{.*}}'int'
17*f4a2713aSLionel Sambuc     bar<int> tmp;
18*f4a2713aSLionel Sambuc   }
19*f4a2713aSLionel Sambuc }
20