- const char *pLevel = argv[i] + 2;
- if (str_startswith(argv[i], "-ggdb")) {
- pLevel = argv[i] + 5;
- } else if (str_startswith(argv[i], "-gstabs")) {
- pLevel = argv[i] + 7;
- } else if (str_startswith(argv[i], "-gcoff")) {
- pLevel = argv[i] + 6;
- } else if (str_startswith(argv[i], "-gxcoff")) {
- pLevel = argv[i] + 7;
- } else if (str_startswith(argv[i], "-gvms")) {
- pLevel = argv[i] + 5;
- }
-
- // Deduce level from argument, default is 2.
- int foundlevel = -1;
- if (pLevel[0] == '\0') {
- foundlevel = 2;
- } else if (pLevel[0] >= '0' && pLevel[0] <= '9') {
- foundlevel = atoi(pLevel);
- }
-
- if (foundlevel >= 0) {
- debug_level = foundlevel;
- debug_argument = argv[i];
- continue;
+ generating_debuginfo = true;
+ args_add(stripped_args, argv[i]);
+ if (conf->unify && !str_eq(argv[i], "-g0")) {
+ cc_log("%s used; disabling unify mode", argv[i]);
+ conf->unify = false;