1 /* as.h - global header file
2 Copyright (C) 1987 Free Software Foundation, Inc.
4 This file is part of GAS, the GNU Assembler.
6 GAS 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 1, or (at your option)
11 GAS 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.
16 You should have received a copy of the GNU General Public License
17 along with GAS; see the file COPYING. If not, write to
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
21 * CAPITALISED names are #defined.
22 * "lowercaseT" is a typedef of "lowercase" objects.
23 * "lowercaseP" is type "pointer to object of type 'lowercase'".
24 * "lowercaseS" is typedef struct ... lowercaseS.
26 * #define SUSPECT when debugging.
27 * If TEST is #defined, then we are testing a module.
30 /* These #defines are for parameters of entire assembler. */
33 * asserts() from <assert.h> are DISabled when NDEBUG is defined and
34 * asserts() from <assert.h> are ENabled when NDEBUG is undefined.
35 * For speed NDEBUG is defined so assert()'s are left out.
41 * For speed SUSPECT is undefined.
46 /* These #imports are for type definitions etc. */
49 #include <mach/machine.h>
51 /* These defines are potentially useful */
58 #define BAD_CASE(value) \
60 as_fatal ("Case value %d unexpected at line %d of file \"%s\"\n", \
61 value, __LINE__, __FILE__); \
64 /* These are assembler-wide concepts */
66 #define register /* no registers: helps debugging */
67 #define know(p) ASSERT(p) /* know() is less ugly than #ifdef SUSPECT/ */
68 /* assert()/#endif. */
70 #define know(p) /* know() checks are no-op.ed */
75 * main program "as.c" (command arguments etc)
78 /* ['x'] TRUE if "-x" seen. */
79 extern char flagseen
[128];
81 /* name of emitted object file, argument to -o if specified */
82 extern char *out_file_name
;
84 /* TRUE if -force_cpusubtype_ALL is specified */
85 extern int force_cpusubtype_ALL
;
87 /* set to the corresponding cpusubtype if -arch flag is specified */
88 extern cpu_subtype_t archflag_cpusubtype
;
89 extern char *specific_archflag
;
91 /* TRUE if the .subsections_via_symbols directive was seen */
92 extern int subsections_via_symbols
;
94 /* -I path options for .includes */
95 struct directory_stack
{
96 struct directory_stack
*next
;
99 extern struct directory_stack include_defaults
[];
100 extern struct directory_stack
*include
;
102 /* non-NULL if AS_SECURE_LOG_FILE is set */
103 extern const char *secure_log_file
;