+ cpp_change_file (scan_in, LC_RENAME, "<built-in>");
+ cpp_init_builtins (scan_in, true);
+ cpp_change_file (scan_in, LC_RENAME, in_fname);
+
+ /* Process switches after builtins so -D can override them. */
+ for (i = 0; i < argc; i += strings_processed)
+ {
+ strings_processed = 0;
+ if (argv[i][0] == '-')
+ {
+ if (argv[i][1] == 'I')
+ {
+ if (argv[i][2] != '\0')
+ {
+ strings_processed = 1;
+ add_path (xstrdup (argv[i] + 2), BRACKET, false);
+ }
+ else if (i + 1 != argc)
+ {
+ strings_processed = 2;
+ add_path (xstrdup (argv[i + 1]), BRACKET, false);
+ }
+ }
+ else if (argv[i][1] == 'D')
+ {
+ if (argv[i][2] != '\0')
+ strings_processed = 1, cpp_define (scan_in, argv[i] + 2);
+ else if (i + 1 != argc)
+ strings_processed = 2, cpp_define (scan_in, argv[i + 1]);
+ }
+ }
+
+ if (strings_processed == 0)
+ break;
+ }
+
+ if (i < argc)
+ cpp_error (scan_in, DL_ERROR, "invalid option `%s'", argv[i]);
+ if (cpp_errors (scan_in))