// RUN: %clang_cc1 -triple %itanium_abi_triple -fsyntax-only -verify %s
// -------
// This section acts like a header file.
// -------
// Check the use of static variables in non-static inline functions.
static int staticVar; // expected-note + {{'staticVar' declared here}}
static int ; // expected-note + {{'staticFunction' declared here}}
static staticStruct; // expected-note + {{'staticStruct' declared here}}
inline int
extern inline int
static inline int
extern inline int
static int ;
inline int
// -------
// This is the main source file.
// -------
// Check that we don't allow illegal uses of inline
inline int a; // expected-error{{'inline' can only appear on functions}}
typedef inline int b; // expected-error{{'inline' can only appear on functions}}
int ; // expected-error{{'inline' can only appear on functions}}
// Check that the warnings from the "header file" aren't on by default in
// the main source file.
inline int
// Check that the warnings show up when explicitly requested.
inline int
inline void
extern inline void
// Check behavior of line markers.
# 1 "XXX.h" 1
inline int
# 100 "inline.c" 2
inline int