// RUN: %clang_cc1 %s -fsyntax-only -verify -Winfinite-recursion
void
void
void
void
// Doesn't warn on mutually recursive functions
void ;
void ;
void
void
void
void
void
int
// Don't warn on infinite loops
void
void
void
;
void
void
;
void
;
// No warnings on templated functions
// sum<0>() is instantiated, does recursively call itself, but never runs.
int
int
int
int value = calculate_value<1,1>;
void ;
// DoStuff<0,0>() is instantiated, but never called.
int
int stuff = DoStuff<0, 1>;
;
int
int wrapper_sum = test_wrapper<2>; // expected-note{{instantiation}}
// namespace std
;
Q q;
Q &
int