aboutsummaryrefslogtreecommitdiff
path: root/tcc.c
diff options
context:
space:
mode:
authorseyko <seyko2@gmail.com>2015-04-12 15:35:37 +0300
committerseyko <seyko2@gmail.com>2015-04-12 15:35:37 +0300
commit05364072042ff37904a7b0b14cdd85a1ea1ca11d (patch)
tree49d2eb6f0133f3d59b2de06de4887c99786c6cf9 /tcc.c
parentdcb36587b5950b000f536e374eeed3787937db27 (diff)
downloadtinycc-05364072042ff37904a7b0b14cdd85a1ea1ca11d.tar.gz
tinycc-05364072042ff37904a7b0b14cdd85a1ea1ca11d.tar.bz2
ability to specify a type of the input file with the -x switch
Usage example: tcc -xc ex5.cgi From a gcc docs: You can specify the input language explicitly with the -x option: -x language Specify explicitly the language for the following input files (rather than letting the compiler choose a default based on the file name suffix). This option applies to all following input files until the next -x option. Possible values for language are: c c-header c-cpp-output c++ c++-header c++-cpp-output objective-c objective-c-header objective-c-cpp-output objective-c++ objective-c++-header objective-c++-cpp-output assembler assembler-with-cpp ada f77 f77-cpp-input f95 f95-cpp-input java -x none Turn off any specification of a language, so that subsequent files are handled according to their file name suffixes (as they are if -x has not been used at all)
Diffstat (limited to 'tcc.c')
-rw-r--r--tcc.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/tcc.c b/tcc.c
index 5815ade..779f894 100644
--- a/tcc.c
+++ b/tcc.c
@@ -312,9 +312,8 @@ int main(int argc, char **argv)
/* compile or add each files or library */
for(i = ret = 0; i < s->nb_files && ret == 0; i++) {
- const char *filename;
-
- filename = s->files[i];
+ int filetype = *(unsigned char *)s->files[i];
+ const char *filename = s->files[i] + 1;
if (filename[0] == '-' && filename[1] == 'l') {
if (tcc_add_library(s, filename + 2) < 0) {
tcc_error_noabort("cannot find '%s'", filename);
@@ -323,7 +322,7 @@ int main(int argc, char **argv)
} else {
if (1 == s->verbose)
printf("-> %s\n", filename);
- if (tcc_add_file(s, filename) < 0)
+ if (tcc_add_file(s, filename, filetype) < 0)
ret = 1;
if (!first_file)
first_file = filename;