| /* This testcase is part of GDB, the GNU debugger. |
| |
| Copyright 2014-2021 Free Software Foundation, Inc. |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 3 of the License, or |
| (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| |
| #define SOME_MACRO 23 |
| #define ARG_MACRO(X, Y) ((X) + (Y) - 1) |
| |
| |
| enum enum_type { |
| ONE = 1, |
| TWO = 2 |
| }; |
| |
| typedef int v4 __attribute__ ((vector_size (16))); |
| |
| union union_type; |
| |
| struct struct_type { |
| char charfield; |
| unsigned char ucharfield; |
| short shortfield; |
| unsigned short ushortfield; |
| int intfield; |
| unsigned int uintfield; |
| unsigned int bitfield : 3; |
| long longfield; |
| unsigned long ulongfield; |
| enum enum_type enumfield; |
| float floatfield; |
| double doublefield; |
| const union union_type *ptrfield; |
| volatile struct struct_type *selffield; |
| int arrayfield[5]; |
| _Complex double complexfield; |
| _Bool boolfield; |
| v4 vectorfield; |
| }; |
| |
| typedef int inttypedef; |
| |
| union union_type { |
| int intfield; |
| inttypedef typedeffield; |
| }; |
| |
| /* volatile provides some coverage of the conversion code. */ |
| volatile struct struct_type struct_object; |
| |
| union union_type union_object; |
| |
| |
| enum ulonger_enum_type { |
| REALLY_MINUS_1 = -1UL, |
| }; |
| |
| enum ulonger_enum_type ulonger; |
| |
| enum longer_enum_type { |
| MINUS_1 = -1, |
| FORCE_TO_LONG = 1L << ((8 * sizeof (long)) - 2) |
| }; |
| |
| enum longer_enum_type longer; |
| |
| int globalvar = 10; |
| |
| static void |
| func_static (int addend) |
| { |
| globalvar += addend; |
| } |
| |
| void |
| func_global (int subtrahend) |
| { |
| globalvar -= subtrahend; |
| } |
| |
| void |
| no_args_or_locals (void) |
| { |
| /* no_args_or_locals breakpoint */ |
| } |
| |
| int *intptr; |
| int globalshadow = 10; |
| static int staticshadow = 20; |
| int externed = 7; |
| |
| int |
| main (void) |
| { |
| int localvar = 50; |
| int shadowed = 51; |
| int bound = 3; |
| int unresolved = 10; |
| int globalshadow = 100; |
| int staticshadow = 200; |
| int externed = 9; |
| int f = 0; |
| |
| static int static_local = 77000; |
| |
| { |
| int another_local = 7; |
| int shadowed = 52; |
| extern int unresolved; |
| extern int externed; |
| |
| int vla[bound]; |
| |
| func_static (0); /* break-here */ |
| no_args_or_locals (); |
| } |
| |
| return 0; |
| } |