Introduce gdb::unique_ptr
[deliverable/binutils-gdb.git] / gdb / common / common-defs.h
1 /* Common definitions.
2
3 Copyright (C) 1986-2016 Free Software Foundation, Inc.
4
5 This file is part of GDB.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 #ifndef COMMON_DEFS_H
21 #define COMMON_DEFS_H
22
23 #include "config.h"
24 #ifdef GDBSERVER
25 #include "build-gnulib-gdbserver/config.h"
26 #else
27 #include "build-gnulib/config.h"
28 #endif
29
30 #include <stdarg.h>
31 #include <stdio.h>
32 #include <stdlib.h>
33 #include <stddef.h>
34
35 /* From:
36 https://www.gnu.org/software/gnulib/manual/html_node/stdint_002eh.html
37
38 "On some hosts that predate C++11, when using C++ one must define
39 __STDC_CONSTANT_MACROS to make visible the definitions of constant
40 macros such as INTMAX_C, and one must define __STDC_LIMIT_MACROS to
41 make visible the definitions of limit macros such as INTMAX_MAX."
42
43 gnulib doesn't fix this for us correctly yet. See:
44 https://lists.gnu.org/archive/html/bug-gnulib/2015-11/msg00004.html
45
46 Meanwhile, explicitly define these ourselves, as C99 intended. */
47 #define __STDC_CONSTANT_MACROS 1
48 #define __STDC_LIMIT_MACROS 1
49 #include <stdint.h>
50
51 #include <string.h>
52 #ifdef HAVE_STRINGS_H
53 #include <strings.h> /* for strcasecmp and strncasecmp */
54 #endif
55 #include <errno.h>
56 #include <alloca.h>
57
58 #include "ansidecl.h"
59 /* This is defined by ansidecl.h, but we prefer gnulib's version. On
60 MinGW, gnulib might enable __USE_MINGW_ANSI_STDIO, which may or not
61 require use of attribute gnu_printf instead of printf. gnulib
62 checks that at configure time. Since _GL_ATTRIBUTE_FORMAT_PRINTF
63 is compatible with ATTRIBUTE_PRINTF, simply use it. */
64 #undef ATTRIBUTE_PRINTF
65 #define ATTRIBUTE_PRINTF _GL_ATTRIBUTE_FORMAT_PRINTF
66
67 #include "libiberty.h"
68 #include "pathmax.h"
69 #include "gdb/signals.h"
70 #include "gdb_locale.h"
71 #include "ptid.h"
72 #include "common-types.h"
73 #include "common-utils.h"
74 #include "gdb_assert.h"
75 #include "errors.h"
76 #include "print-utils.h"
77 #include "common-debug.h"
78 #include "cleanups.h"
79 #include "common-exceptions.h"
80
81 #define EXTERN_C extern "C"
82 #define EXTERN_C_PUSH extern "C" {
83 #define EXTERN_C_POP }
84
85 /* Pull in gdb::unique_ptr and gdb::unique_xmalloc_ptr. */
86 #include "common/gdb_unique_ptr.h"
87
88 #endif /* COMMON_DEFS_H */
This page took 0.033167 seconds and 5 git commands to generate.