]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/decl.h
testsuite: XFAIL g++.dg/modules/indirect-1_b.C
[thirdparty/gcc.git] / gcc / cp / decl.h
CommitLineData
8d08fdba 1/* Variables and structures for declaration processing.
a945c346 2 Copyright (C) 1993-2024 Free Software Foundation, Inc.
8d08fdba 3
1c313945 4This file is part of GCC.
8d08fdba 5
1c313945 6GCC is free software; you can redistribute it and/or modify
8d08fdba 7it under the terms of the GNU General Public License as published by
e77f031d 8the Free Software Foundation; either version 3, or (at your option)
8d08fdba
MS
9any later version.
10
1c313945 11GCC is distributed in the hope that it will be useful,
8d08fdba
MS
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
e77f031d
NC
17along with GCC; see the file COPYING3. If not see
18<http://www.gnu.org/licenses/>. */
8d08fdba
MS
19
20/* In grokdeclarator, distinguish syntactic contexts of declarators. */
21enum decl_context
22{ NORMAL, /* Ordinary declaration */
23 FUNCDEF, /* Function definition */
24 PARM, /* Declaration of parm before function body */
0229b692 25 TPARM, /* Declaration of template parm */
db5ae43f 26 CATCHPARM, /* Declaration of catch parm */
8d08fdba
MS
27 FIELD, /* Declaration inside struct or union */
28 BITFIELD, /* Likewise but with specified width */
29 TYPENAME, /* Typename (inside cast or sizeof) */
0d9c0892 30 TEMPLATE_TYPE_ARG, /* Almost the same as TYPENAME */
8d08fdba
MS
31 MEMFUNCDEF /* Member function definition */
32};
33
f30432d7 34/* We need this in here to get the decl_context definition. */
c8094d83 35extern tree grokdeclarator (const cp_declarator *,
b1db7f91 36 cp_decl_specifier_seq *,
62d1db17 37 enum decl_context, int, tree*);
e072b0c4 38extern void name_unnamed_type (tree, tree);
b344d949
JM
39
40/* States indicating how grokdeclarator() should handle declspecs marked
41 with __attribute__((deprecated)). An object declared as
42 __attribute__((deprecated)) suppresses warnings of uses of other
43 deprecated items. */
44
45enum deprecated_states {
46 DEPRECATED_NORMAL,
8433baad
IS
47 DEPRECATED_SUPPRESS,
48 UNAVAILABLE_DEPRECATED_SUPPRESS
b344d949
JM
49};
50
51extern enum deprecated_states deprecated_state;
52