/* At file scope, all objects have static storage duration */
/* Both 'extern' and 'static' mean static storage duration */
/* Tentative definition */
/* External linkage */
int test1;
/* Definition */
/* External linkage */
int test2 = 42;
/* Tentative definition */
/* External linkage */
int test3;
/* Actual definition for the object on line 14 */
/* Still external linkage */
int test3 = 42;
/* Neither a tentative definition nor a definition */
/* External linkage */
extern int test4;
/* Neither a tentative definition nor a definition */
/* External linkage */
extern int test5;
/* Actual definition for the object on line 26 */
/* Still external linkage */
extern int test5 = 42;
/* Tentative definition */
/* Internal linkage */
static int test6;
/* Tentative definition */
/* Internal linkage */
static int test7;
/* Actual definition for the object on line 38 */
/* Still internal linkage */
static int test7 = 42;
/* Tentative definition */
/* Internal linkage */
static int test8;
/* Actual definition for the object on line 46 */
/* Still internal linkage, despite 'extern'! */
extern int test8 = 42;
int main(void) { return 0; }
/*
* Since no other definition was given for 'test1', the
* tentative definition on line 6 becomes the actual
* definition with a zero value, equivalent to as if it
* had been:
int test1 = 0;
*/
/*
* Since no other definition was given for 'test6', the
* tentative definition on line 34 becomes the actual
* definition with a zero value, equivalent to as if it
* had been:
static int test6 = 0;
*/