MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
require.c
1 /*
2  Copyright 2009 Sun Microsystems, Inc.
3  All rights reserved. Use is subject to license terms.
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; version 2 of the License.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 
19 #include <ndb_global.h>
20 
21 void require_failed(int exitcode, RequirePrinter printer,
22  const char* expr, const char* file, int line)
23 {
24 #define FMT "%s:%d: require(%s) failed\n", file, line, expr
25  if (!printer)
26  {
27  fprintf(stderr, FMT);
28  fflush(stderr);
29  }
30  else
31  {
32  printer(FMT);
33  }
34 #ifdef _WIN32
35  DebugBreak();
36 #endif
37  if(exitcode)
38  {
39  exit(exitcode);
40  }
41  abort();
42 }
43 
44 #ifdef TEST
45 int main()
46 {
47  require(1);
48  require(0);
49 }
50 #endif