64 lines
1.6 KiB
C
64 lines
1.6 KiB
C
/* next.c: Functions for NeXT as target machine for GNU C compiler. */
|
|
|
|
/* Note that the include below means that we can't debug routines in
|
|
m68k.c when running on a COFF system. */
|
|
|
|
#include "m68k.c"
|
|
|
|
/* Make everything that used to go in the text section really go there. */
|
|
|
|
int flag_no_mach_text_sections = 0;
|
|
|
|
#define OPT_STRCMP(opt) (!strncmp (opt, p, sizeof (opt)-1))
|
|
|
|
/* 1 if handle_pragma has been called yet. */
|
|
|
|
static int pragma_initialized;
|
|
|
|
/* Initial setting of `optimize'. */
|
|
|
|
static int initial_optimize_flag;
|
|
|
|
extern char *get_directive_line ();
|
|
|
|
/* Called from check_newline via the macro HANDLE_PRAGMA.
|
|
FINPUT is the source file input stream. */
|
|
|
|
void
|
|
handle_pragma (finput)
|
|
FILE *finput;
|
|
{
|
|
register char *p = get_directive_line (finput);
|
|
|
|
/* Record initial setting of optimize flag, so we can restore it. */
|
|
if (!pragma_initialized)
|
|
{
|
|
pragma_initialized = 1;
|
|
initial_optimize_flag = optimize;
|
|
}
|
|
|
|
if (OPT_STRCMP ("CC_OPT_ON"))
|
|
optimize = 1, obey_regdecls = 0;
|
|
else if (OPT_STRCMP ("CC_OPT_OFF"))
|
|
optimize = 0, obey_regdecls = 1;
|
|
else if (OPT_STRCMP ("CC_OPT_RESTORE"))
|
|
{
|
|
extern int initial_optimize_flag;
|
|
|
|
if (optimize != initial_optimize_flag)
|
|
{
|
|
if (initial_optimize_flag)
|
|
obey_regdecls = 0;
|
|
else
|
|
obey_regdecls = 1;
|
|
optimize = initial_optimize_flag;
|
|
}
|
|
}
|
|
else if (OPT_STRCMP ("CC_WRITABLE_STRINGS"))
|
|
flag_writable_strings = 1;
|
|
else if (OPT_STRCMP ("CC_NON_WRITABLE_STRINGS"))
|
|
flag_writable_strings = 0;
|
|
else if (OPT_STRCMP("CC_NO_MACH_TEXT_SECTIONS"))
|
|
flag_no_mach_text_sections = 1;
|
|
}
|