[stabs] The address of Fortran common blocks may be > INT_MAX.
[deliverable/binutils-gdb.git] / gas / read.h
CommitLineData
252b5132 1/* read.h - of read.c
f7e42eb4 2 Copyright 1986, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
aa820537 3 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
252b5132
RH
4 Free Software Foundation, Inc.
5
6 This file is part of GAS, the GNU Assembler.
7
8 GAS is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
ec2655a6 10 the Free Software Foundation; either version 3, or (at your option)
252b5132
RH
11 any later version.
12
13 GAS is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
ee515fb7 19 along with GAS; see the file COPYING. If not, write to the Free
4b4da160
NC
20 Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
21 02110-1301, USA. */
252b5132 22
ee515fb7 23extern char *input_line_pointer; /* -> char we are parsing now. */
252b5132 24
ee515fb7
KH
25/* Define to make whitespace be allowed in many syntactically
26 unnecessary places. Normally undefined. For compatibility with
27 ancient GNU cc. */
252b5132 28/* #undef PERMIT_WHITESPACE */
ee515fb7 29#define PERMIT_WHITESPACE
252b5132
RH
30
31#ifdef PERMIT_WHITESPACE
ee515fb7 32#define SKIP_WHITESPACE() \
e4475e39 33 ((*input_line_pointer == ' ') ? ++input_line_pointer : 0)
252b5132
RH
34#else
35#define SKIP_WHITESPACE() know(*input_line_pointer != ' ' )
36#endif
37
252b5132
RH
38#define LEX_NAME (1) /* may continue a name */
39#define LEX_BEGIN_NAME (2) /* may begin a name */
58b5739a 40#define LEX_END_NAME (4) /* ends a name */
252b5132
RH
41
42#define is_name_beginner(c) \
43 ( lex_type[(unsigned char) (c)] & LEX_BEGIN_NAME )
44#define is_part_of_name(c) \
45 ( lex_type[(unsigned char) (c)] & LEX_NAME )
58b5739a
RH
46#define is_name_ender(c) \
47 ( lex_type[(unsigned char) (c)] & LEX_END_NAME )
252b5132
RH
48
49#ifndef is_a_char
50#define CHAR_MASK (0xff)
51#define NOT_A_CHAR (CHAR_MASK+1)
ee515fb7 52#define is_a_char(c) (((unsigned) (c)) <= CHAR_MASK)
252b5132
RH
53#endif /* is_a_char() */
54
55extern char lex_type[];
56extern char is_end_of_line[];
57
39e6acbd 58extern int is_it_end_of_statement (void);
40a4d956 59extern char *find_end_of_line (char *, int);
252b5132
RH
60
61extern int target_big_endian;
62
63/* These are initialized by the CPU specific target files (tc-*.c). */
64extern const char comment_chars[];
65extern const char line_comment_chars[];
66extern const char line_separator_chars[];
67
68/* Table of -I directories. */
69extern char **include_dirs;
70extern int include_dir_count;
71extern int include_dir_maxlen;
72
73/* The offset in the absolute section. */
74extern addressT abs_section_offset;
75
76/* The label on a line, used by some of the pseudo-ops. */
77extern symbolS *line_label;
78
79/* This is used to support MRI common sections. */
80extern symbolS *mri_common_symbol;
81
bccba5f0 82/* True if a stabs line debug statement is currently being emitted. */
92eb7b32 83extern int outputting_stabs_line_debug;
bccba5f0 84
252b5132 85/* Possible arguments to .linkonce. */
ee515fb7 86enum linkonce_type {
252b5132
RH
87 LINKONCE_UNSET = 0,
88 LINKONCE_DISCARD,
89 LINKONCE_ONE_ONLY,
90 LINKONCE_SAME_SIZE,
91 LINKONCE_SAME_CONTENTS
92};
93
a8a3b3b2 94#ifndef TC_CASE_SENSITIVE
37d8bb27
NC
95extern char original_case_string[];
96#endif
97
39e6acbd 98extern void pop_insert (const pseudo_typeS *);
252b5132 99extern unsigned int get_stab_string_offset
39e6acbd
KH
100 (const char *string, const char *stabstr_secname);
101extern void aout_process_stab (int, const char *, int, int, int);
102extern char *demand_copy_string (int *lenP);
103extern char *demand_copy_C_string (int *len_pointer);
104extern char get_absolute_expression_and_terminator (long *val_pointer);
39e6acbd
KH
105extern offsetT get_absolute_expression (void);
106extern unsigned int next_char_of_string (void);
107extern void s_mri_sect (char *);
108extern char *mri_comment_field (char *);
109extern void mri_comment_end (char *, int);
110extern void add_include_dir (char *path);
111extern void cons (int nbytes);
112extern void demand_empty_rest_of_line (void);
113extern void emit_expr (expressionS *exp, unsigned int nbytes);
7ddd14de 114extern void emit_expr_fix (expressionS *, unsigned int, fragS *, char *);
39e6acbd
KH
115extern void equals (char *sym_name, int reassign);
116extern void float_cons (int float_type);
117extern void ignore_rest_of_line (void);
40a4d956 118#define discard_rest_of_line ignore_rest_of_line
39e6acbd
KH
119extern int output_leb128 (char *, valueT, int sign);
120extern void pseudo_set (symbolS * symbolP);
121extern void read_a_source_file (char *name);
122extern void read_begin (void);
123extern void read_print_statistics (FILE *);
124extern int sizeof_leb128 (valueT, int sign);
125extern void stabs_generate_asm_file (void);
126extern void stabs_generate_asm_lineno (void);
127extern void stabs_generate_asm_func (const char *, const char *);
128extern void stabs_generate_asm_endfunc (const char *, const char *);
129extern void do_repeat (int,const char *,const char *);
c7927a3c 130extern void do_repeat_with_expander (int, const char *, const char *, const char *);
39e6acbd
KH
131extern void end_repeat (int);
132extern void do_parse_cons_expression (expressionS *, int);
133
134extern void generate_lineno_debug (void);
135
136extern void s_abort (int) ATTRIBUTE_NORETURN;
137extern void s_align_bytes (int arg);
138extern void s_align_ptwo (int);
e13bab5a
AM
139extern void bss_alloc (symbolS *, addressT, int);
140extern offsetT parse_align (int);
141extern symbolS *s_comm_internal (int, symbolS *(*) (int, symbolS *, addressT));
13c56984 142extern symbolS *s_lcomm_internal (int, symbolS *, addressT);
c04f5787 143extern void s_app_file_string (char *, int);
39e6acbd
KH
144extern void s_app_file (int);
145extern void s_app_line (int);
39e6acbd
KH
146extern void s_comm (int);
147extern void s_data (int);
148extern void s_desc (int);
149extern void s_else (int arg);
150extern void s_elseif (int arg);
151extern void s_end (int arg);
152extern void s_endif (int arg);
153extern void s_err (int);
d190d046 154extern void s_errwarn (int);
39e6acbd
KH
155extern void s_fail (int);
156extern void s_fill (int);
157extern void s_float_space (int mult);
158extern void s_func (int);
39e6acbd
KH
159extern void s_globl (int arg);
160extern void s_if (int arg);
26aca5f6 161extern void s_ifb (int arg);
39e6acbd
KH
162extern void s_ifc (int arg);
163extern void s_ifdef (int arg);
164extern void s_ifeqs (int arg);
165extern void s_ignore (int arg);
166extern void s_include (int arg);
167extern void s_irp (int arg);
168extern void s_lcomm (int needs_align);
169extern void s_lcomm_bytes (int needs_align);
170extern void s_leb128 (int sign);
171extern void s_linkonce (int);
172extern void s_lsym (int);
173extern void s_macro (int);
174extern void s_mexit (int);
175extern void s_mri (int);
176extern void s_mri_common (int);
177extern void s_org (int);
178extern void s_print (int);
179extern void s_purgem (int);
180extern void s_rept (int);
181extern void s_set (int);
182extern void s_space (int mult);
183extern void s_stab (int what);
184extern void s_struct (int);
185extern void s_text (int);
186extern void stringer (int append_zero);
187extern void s_xstab (int what);
188extern void s_rva (int);
189extern void s_incbin (int);
ee3c0378 190extern int s_vendor_attribute (int);
06e77878 191extern void s_weakref (int);
This page took 0.528021 seconds and 4 git commands to generate.