Imported Upstream version 7.9
[platform/upstream/gdb.git] / gdb / testsuite / gdb.base / find.c
1 /* Testcase for the find command.
2    This testcase is part of GDB, the GNU debugger.
3
4    Copyright 2008-2015 Free Software Foundation, Inc.
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3 of the License, or
9    (at your option) any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19    Please email any bugs, comments, and/or additions to this file to:
20    bug-gdb@gnu.org  */
21
22 #include <stdlib.h>
23 #include <stdint.h>
24
25 /* According to C99 <stdint.h> has to provide these identifiers as
26    types, but is also free to define macros shadowing the typedefs.
27    This is the case with some C library implementations.  Undefine
28    them to make sure the types are used and included in debug output.  */
29 #undef int8_t
30 #undef int16_t
31 #undef int32_t
32 #undef int64_t
33
34 #define CHUNK_SIZE 16000 /* same as findcmd.c's */
35 #define BUF_SIZE (2 * CHUNK_SIZE) /* at least two chunks */
36
37 static int8_t int8_search_buf[100];
38 static int16_t int16_search_buf[100];
39 static int32_t int32_search_buf[100];
40 static int64_t int64_search_buf[100];
41
42 static char *search_buf;
43 static int search_buf_size;
44
45 static int x;
46
47 static void
48 stop_here ()
49 {
50   x = 1; // stop here
51 }
52
53 static void
54 init_bufs ()
55 {
56   search_buf_size = BUF_SIZE;
57   search_buf = malloc (search_buf_size);
58   if (search_buf == NULL)
59     exit (1);
60   memset (search_buf, 'x', search_buf_size);
61 }
62
63 int
64 main ()
65 {
66   init_bufs ();
67
68   stop_here ();
69
70   /* Reference variables.  */
71   x = int8_search_buf[0];
72   x = int16_search_buf[0];
73   x = int32_search_buf[0];
74   x = int64_search_buf[0];
75
76   return 0;
77 }