1#ifndef OPTIONS_H
2#define OPTIONS_H
3
4enum {
5	CMODEL_UNKNOWN,
6	CMODEL_KERNEL,
7	CMODEL_LARGE,
8	CMODEL_MEDANY,
9	CMODEL_MEDIUM,
10	CMODEL_MEDLOW,
11	CMODEL_PIC,
12	CMODEL_SMALL,
13	CMODEL_TINY,
14	CMODEL_LAST,
15};
16
17enum standard {
18	STANDARD_NONE,
19	STANDARD_GNU,
20	STANDARD_C89,
21	STANDARD_GNU89 = STANDARD_C89 | STANDARD_GNU,
22	STANDARD_C94,
23	STANDARD_GNU94 = STANDARD_C94 | STANDARD_GNU,
24	STANDARD_C99,
25	STANDARD_GNU99 = STANDARD_C99 | STANDARD_GNU,
26	STANDARD_C11,
27	STANDARD_GNU11 = STANDARD_C11 | STANDARD_GNU,
28	STANDARD_C17,
29	STANDARD_GNU17 = STANDARD_C17 | STANDARD_GNU,
30};
31
32extern int die_if_error;
33extern int do_output;
34extern int gcc_major;
35extern int gcc_minor;
36extern int gcc_patchlevel;
37extern int optimize_level;
38extern int optimize_size;
39extern int preprocess_only;
40extern int preprocessing;
41extern int repeat_phase;
42extern int verbose;
43
44extern int cmdline_include_nr;
45extern char *cmdline_include[];
46
47extern const char *base_filename;
48extern const char *diag_prefix;
49extern const char *gcc_base_dir;
50extern const char *multiarch_dir;
51extern const char *outfile;
52
53extern enum standard standard;
54extern unsigned int tabstop;
55
56extern int arch_big_endian;
57extern int arch_cmodel;
58extern int arch_fp_abi;
59extern int arch_m64;
60extern int arch_msize_long;
61extern int arch_os;
62
63extern int dbg_compound;
64extern int dbg_dead;
65extern int dbg_domtree;
66extern int dbg_entry;
67extern int dbg_ir;
68extern int dbg_postorder;
69
70extern int dump_macro_defs;
71extern int dump_macros_only;
72
73extern unsigned long fdump_ir;
74extern int fhosted;
75extern unsigned int fmax_errors;
76extern unsigned int fmax_warnings;
77extern int fmem_report;
78extern unsigned long long fmemcpy_max_count;
79extern unsigned long fpasses;
80extern int fpic;
81extern int fpie;
82extern int fshort_wchar;
83extern int funsigned_bitfields;
84extern int funsigned_char;
85
86extern int Waddress;
87extern int Waddress_space;
88extern int Wbitwise;
89extern int Wbitwise_pointer;
90extern int Wcast_from_as;
91extern int Wcast_to_as;
92extern int Wcast_truncate;
93extern int Wconstant_suffix;
94extern int Wconstexpr_not_const;
95extern int Wcontext;
96extern int Wdecl;
97extern int Wdeclarationafterstatement;
98extern int Wdefault_bitfield_sign;
99extern int Wdesignated_init;
100extern int Wdo_while;
101extern int Wenum_mismatch;
102extern int Wexternal_function_has_definition;
103extern int Wflexible_array_array;
104extern int Wflexible_array_nested;
105extern int Wflexible_array_sizeof;
106extern int Wflexible_array_union;
107extern int Wimplicit_int;
108extern int Winit_cstring;
109extern int Wint_to_pointer_cast;
110extern int Wmemcpy_max_count;
111extern int Wnewline_eof;
112extern int Wnon_pointer_null;
113extern int Wold_initializer;
114extern int Wold_style_definition;
115extern int Wone_bit_signed_bitfield;
116extern int Woverride_init;
117extern int Woverride_init_all;
118extern int Woverride_init_whole_range;
119extern int Wparen_string;
120extern int Wpast_deep_designator;
121extern int Wpedantic;
122extern int Wpointer_arith;
123extern int Wpointer_to_int_cast;
124extern int Wptr_subtraction_blows;
125extern int Wreturn_void;
126extern int Wshadow;
127extern int Wshift_count_negative;
128extern int Wshift_count_overflow;
129extern int Wsizeof_bool;
130extern int Wsparse_error;
131extern int Wstrict_prototypes;
132extern int Wtautological_compare;
133extern int Wtransparent_union;
134extern int Wtypesign;
135extern int Wundef;
136extern int Wuninitialized;
137extern int Wunion_cast;
138extern int Wuniversal_initializer;
139extern int Wunknown_attribute;
140extern int Wvla;
141
142extern char **handle_switch(char *arg, char **next);
143extern void handle_switch_finalize(void);
144
145#endif
146