aboutsummaryrefslogtreecommitdiff
path: root/libtcc.c
diff options
context:
space:
mode:
authorgrischka <grischka>2016-05-05 14:12:53 +0200
committergrischka <grischka>2016-05-05 14:12:53 +0200
commitfe845cf53da206bb28f6b49a0878b0118b4f242b (patch)
tree27caab94c1fdd03dd8b551d637cd74e917c0f5ae /libtcc.c
parentcaebbc3ee1071ace94003cdf645f749d2b0a9eed (diff)
downloadtinycc-fe845cf53da206bb28f6b49a0878b0118b4f242b.tar.gz
tinycc-fe845cf53da206bb28f6b49a0878b0118b4f242b.tar.bz2
tccpp: cleanup options -dD -dM, remove -C
The lexer is for reading files, not for writing. Also : - macro_is_equal(): avoid crash if redefining __FILE__
Diffstat (limited to 'libtcc.c')
-rw-r--r--libtcc.c50
1 files changed, 14 insertions, 36 deletions
diff --git a/libtcc.c b/libtcc.c
index 75a37c3..d63b86f 100644
--- a/libtcc.c
+++ b/libtcc.c
@@ -1132,18 +1132,14 @@ LIBTCCAPI TCCState *tcc_new(void)
tcc_define_symbol(s, "__linux", NULL);
# endif
# if defined(__FreeBSD__)
-# define str(s) #s
- tcc_define_symbol(s, "__FreeBSD__", str( __FreeBSD__));
-# undef str
+ tcc_define_symbol(s, "__FreeBSD__", "__FreeBSD__");
# endif
# if defined(__FreeBSD_kernel__)
tcc_define_symbol(s, "__FreeBSD_kernel__", NULL);
# endif
#endif
# if defined(__NetBSD__)
-# define str(s) #s
- tcc_define_symbol(s, "__NetBSD__", str( __NetBSD__));
-# undef str
+ tcc_define_symbol(s, "__NetBSD__", "__NetBSD__");
# endif
/* TinyCC & gcc defines */
@@ -1227,8 +1223,6 @@ LIBTCCAPI void tcc_delete(TCCState *s1)
/* close a preprocessor output */
if (s1->ppfp && s1->ppfp != stdout)
fclose(s1->ppfp);
- if (s1->dffp && s1->dffp != s1->ppfp)
- fclose(s1->dffp);
/* free all sections */
for(i = 1; i < s1->nb_sections; i++)
@@ -1614,12 +1608,7 @@ LIBTCCAPI int tcc_set_output_type(TCCState *s, int output_type)
if (!s->ppfp)
tcc_error("could not write '%s'", s->outfile);
}
- s->dffp = s->ppfp;
- if (s->dflag == 'M')
- s->ppfp = NULL;
}
- if (s->option_C && !s->ppfp)
- s->option_C = 0;
if (!s->nostdinc) {
/* default include paths */
@@ -1670,7 +1659,6 @@ LIBTCCAPI int tcc_set_output_type(TCCState *s, int output_type)
tcc_add_crt(s, "crti.o");
}
#endif
-
#ifdef CONFIG_TCC_BCHECK
if (s->do_bounds_check && (output_type == TCC_OUTPUT_EXE))
{
@@ -1681,12 +1669,8 @@ LIBTCCAPI int tcc_set_output_type(TCCState *s, int output_type)
put_extern_sym(sym, NULL, 0, 0);
}
#endif
-
if (s->normalize_inc_dirs)
tcc_normalize_inc_dirs(s);
- if (s->output_type == TCC_OUTPUT_PREPROCESS)
- print_defines();
-
return 0;
}
@@ -1963,7 +1947,6 @@ enum {
TCC_OPTION_b,
TCC_OPTION_g,
TCC_OPTION_c,
- TCC_OPTION_C,
TCC_OPTION_dumpversion,
TCC_OPTION_d,
TCC_OPTION_float_abi,
@@ -2021,7 +2004,6 @@ static const TCCOption tcc_options[] = {
#endif
{ "g", TCC_OPTION_g, TCC_OPTION_HAS_ARG | TCC_OPTION_NOSEP },
{ "c", TCC_OPTION_c, 0 },
- { "C", TCC_OPTION_C, 0 },
{ "dumpversion", TCC_OPTION_dumpversion, 0},
{ "d", TCC_OPTION_d, TCC_OPTION_HAS_ARG | TCC_OPTION_NOSEP },
#ifdef TCC_TARGET_ARM
@@ -2210,17 +2192,15 @@ ST_FUNC int tcc_parse_args1(TCCState *s, int argc, char **argv)
tcc_warning("-c: some compiler action already specified (%d)", s->output_type);
s->output_type = TCC_OUTPUT_OBJ;
break;
- case TCC_OPTION_C:
- s->option_C = 1;
- break;
case TCC_OPTION_d:
- if (*optarg == 'D' || *optarg == 'M')
- s->dflag = *optarg;
- else {
- if (s->warn_unsupported)
- goto unsupported_option;
- tcc_error("invalid option -- '%s'", r);
- }
+ if (*optarg == 'D')
+ s->dflag = 3;
+ else if (*optarg == 'M')
+ s->dflag = 7;
+ else if (*optarg == 'b')
+ s->dflag = 8;
+ else
+ goto unsupported_option;
break;
#ifdef TCC_TARGET_ARM
case TCC_OPTION_float_abi:
@@ -2310,12 +2290,11 @@ ST_FUNC int tcc_parse_args1(TCCState *s, int argc, char **argv)
do ++s->verbose; while (*optarg++ == 'v');
break;
case TCC_OPTION_f:
- if (tcc_set_flag(s, optarg, 1) < 0 && s->warn_unsupported)
+ if (tcc_set_flag(s, optarg, 1) < 0)
goto unsupported_option;
break;
case TCC_OPTION_W:
- if (tcc_set_warning(s, optarg, 1) < 0 &&
- s->warn_unsupported)
+ if (tcc_set_warning(s, optarg, 1) < 0)
goto unsupported_option;
break;
case TCC_OPTION_w:
@@ -2378,10 +2357,9 @@ ST_FUNC int tcc_parse_args1(TCCState *s, int argc, char **argv)
/* ignored */
break;
default:
- if (s->warn_unsupported) {
- unsupported_option:
+unsupported_option:
+ if (s->warn_unsupported)
tcc_warning("unsupported option '%s'", r);
- }
break;
}
}