Mercurial > hg > CbC > CbC_llvm
view clang/test/Sema/implicit-decl-c90.c @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | c4bab56944e8 |
line wrap: on
line source
// RUN: %clang_cc1 %s -std=c90 -verify -fsyntax-only void t0(int x) { int explicit_decl(); int (*p)(); if(x > 0) x = g() + 1; // expected-note {{previous implicit declaration}} p = g; if(x < 0) { extern void u(int (*)[h()]); int (*q)() = h; } p = h; /* expected-error {{use of undeclared identifier 'h'}} */ } void t1(int x) { int (*p)(); switch (x) { g(); case 0: x = h() + 1; break; case 1: p = g; p = h; break; } p = g; /* expected-error {{use of undeclared identifier 'g'}} */ p = h; /* expected-error {{use of undeclared identifier 'h'}} */ explicit_decl(); p = explicit_decl; } int t2(int x) { int y = ({ if (x > 0) x = g() + 1; 2*x; }); int (*p)() = g; /* expected-error {{use of undeclared identifier 'g'}} */ return y; } int PR34822() { {int i = sizeof(PR34822_foo());} /* expected-note {{previous definition is here}} */ {extern int PR34822_foo;} /* expected-error {{redefinition of 'PR34822_foo' as different kind of symbol}} */ {extern int PR34822_bar;} /* expected-note {{previous declaration is here}} */ {int i = sizeof(PR34822_bar());} /* expected-warning {{use of out-of-scope declaration of 'PR34822_bar' whose type is not compatible with that of an implicit declaration}} expected-error {{called object type 'int' is not a function or function pointer}} */ } int (*p)() = g; /* expected-error {{use of undeclared identifier 'g'}} */ int (*q)() = h; /* expected-error {{use of undeclared identifier 'h'}} */ float g(); /* expected-error {{conflicting types for 'g'}} */