home *** CD-ROM | disk | FTP | other *** search
- /* 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;
- }
-