projects
/
cparser
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
changed printf format for size_t printing
[cparser]
/
main.c
diff --git
a/main.c
b/main.c
index
2794b90
..
a0f17a5
100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-105,7
+105,7
@@
bool strict_mode = false;
/* to switch on printing of implicit casts */
extern bool print_implicit_casts;
/* to switch on printing of implicit casts */
extern bool print_implicit_casts;
-/* to switch on printing of
s
renthesis to indicate operator precedence */
+/* to switch on printing of
pa
renthesis to indicate operator precedence */
extern bool print_parenthesis;
static int verbose;
extern bool print_parenthesis;
static int verbose;
@@
-362,6
+362,7
@@
int main(int argc, char **argv)
const char *dumpfunction = NULL;
compile_mode_t mode = CompileAssembleLink;
int opt_level = 1;
const char *dumpfunction = NULL;
compile_mode_t mode = CompileAssembleLink;
int opt_level = 1;
+ int result = EXIT_SUCCESS;
obstack_init(&cppflags_obst);
obstack_init(&ldflags_obst);
obstack_init(&cppflags_obst);
obstack_init(&ldflags_obst);
@@
-415,7
+416,6
@@
int main(int argc, char **argv)
/* fallthrough */
case 2:
firm_option("inline");
/* fallthrough */
case 2:
firm_option("inline");
- firm_option("no-strength-red");
firm_option("deconv");
firm_be_option("omitfp");
break;
firm_option("deconv");
firm_be_option("omitfp");
break;
@@
-687,29
+687,35
@@
int main(int argc, char **argv)
FILE *preprocessed_in = preprocess(in, input);
translation_unit_t *const unit = do_parsing(preprocessed_in, input);
FILE *preprocessed_in = preprocess(in, input);
translation_unit_t *const unit = do_parsing(preprocessed_in, input);
- int res
ult
= pclose(preprocessed_in);
- if(res
ult
!= 0) {
- return res
ult
;
+ int res = pclose(preprocessed_in);
+ if(res != 0) {
+ return res;
}
}
- if(unit == NULL) {
+
+ if(error_count > 0) {
/* parsing failed because of errors */
fprintf(stderr, "%u error(s), %u warning(s)\n", error_count, warning_count);
/* parsing failed because of errors */
fprintf(stderr, "%u error(s), %u warning(s)\n", error_count, warning_count);
- return EXIT_FAILURE;
- }
- if (warning_count > 0) {
+ result = EXIT_FAILURE;
+ } else if(warning_count > 0) {
fprintf(stderr, "%u warning(s)\n", warning_count);
}
if(mode == BenchmarkParser) {
fprintf(stderr, "%u warning(s)\n", warning_count);
}
if(mode == BenchmarkParser) {
- return
0
;
+ return
result
;
}
}
+ /* prints the AST even if errors occurred */
if(mode == PrintAst) {
type_set_output(out);
ast_set_output(out);
print_ast(unit);
if(mode == PrintAst) {
type_set_output(out);
ast_set_output(out);
print_ast(unit);
- return
0
;
+ return
result
;
}
}
+
+ /* cannot handle other modes with errors */
+ if(result != EXIT_SUCCESS)
+ return result;
+
if(mode == PrintFluffy) {
type_set_output(out);
ast_set_output(out);
if(mode == PrintFluffy) {
type_set_output(out);
ast_set_output(out);