summaryrefslogtreecommitdiffabout
AgeCommit message (Collapse)AuthorFiles
2019-07-10Use wordsplit from submoduleHEADmasterSergey Poznyakoff7
2019-02-23Version 1.6release-1.6Sergey Poznyakoff2
2019-02-10Finish implementation of --allSergey Poznyakoff8
* doc/cflow.1: Document the --all --all behavior * doc/cflow.texi: Likewise. * src/main.c: Increment all_functions for each -A option. * src/output.c (tree_output): If one --all option is used, output graphs for all top-level functions (i.e. functions, not reachable from other ones). If used twice, output graphs for all global function. * tests/all.at: New test. * tests/Makefile.am: Add new test. * tests/testsuite.at: Likewise.
2019-02-10Fix processing of typedef struct and struct declarations. Fix --xref mode.Sergey Poznyakoff13
Some constucts were processed incorrectly (see typedef.at for examples). Unit-local types were not displayed in xref mode. * src/cflow.h (symbol_temp): Rename to symbol_temp. All uses changed. * src/output.c (tree_output): In all_functions mode: print all functions without explicit caller. * src/parser.c (save_token): Process curly braces. (fake_struct): Don't restore stack upon encountering identifier or modifier. See typedef.at for testcases. (parse_variable_declaration): restore stack only if type_end is -1 (no tag encountered). See struct06 in struct.at (skip_struct): Minor change. * src/parser.h: Redefine token types as enum. * src/symbol.c (unit_local_list): New static. (static_free): Preserve unit-local symbols in unit_local_list in xref mode. (collect_symbols): Consider symbols from unit_local_list. * tests/Makefile.am: Add new testcases. * tests/testsuite.at (CFLOW_TEST): New macro. Include new testcases. * tests/struct.at: New file. * tests/typedef.at: New file. * tests/struct01.at: Remove. * tests/struct02.at: Remove. * tests/struct03.at: Remove. * tests/struct04.at: Remove. * .gitignore: Update.
2019-02-09Minor changeSergey Poznyakoff3
* src/output.c (tree_output): Make sure the main subtree is never output twice. * src/wordsplit.c: Update from grecs. * src/wordsplit.h: Likewise.
2019-02-08Fix the documentationSergey Poznyakoff2
2019-02-08Fix https://savannah.gnu.org/bugs/index.php?47110Sergey Poznyakoff4
* src/parser.c (expression): Fix parsing of type casts. * tests/memberof.at: New test case. * tests/testsuite.at: Add new test. * tests/Makefile.am: Add new test.
2019-02-08Fix typoSergey Poznyakoff1
2019-02-08Include in output functions that don't call other functionsSergey Poznyakoff2
* src/output.c (tree_output): When outputting all graphs, skip only functions that have no source file information. * src/parser.c (declare): Don't install symbols with empty declarations.
2019-02-08Upgrade gnulibSergey Poznyakoff2
2019-02-08Update copyright statementsSergey Poznyakoff44
2019-02-08New options: --all and --no-mainSergey Poznyakoff6
* NEWS: Document --all and --no-main * configure.ac: Version 1.5.90 * doc/cflow.texi: Document --all and --no-main * src/cflow.h (all_functions): New extern. * src/main.c: New options: -A (--all) and --no-main * src/output.c (tree_output): Output all graphs if all_functions is set or no main function is defined.
2019-01-22BugfixSergey Poznyakoff1
* src/main.c (main): Make sure preprocessor options are collected before parsing source files.
2017-01-02Happy GNU YearSergey Poznyakoff48
2016-11-14Include static symbols as root points in inverted graphs.Sergey Poznyakoff4
* src/cflow.h (linked_list_size): New function. * src/linked-list.c (linked_list_size): New function. * src/symbol.c (collect_symbols): Include static symbols, if allowed by sel. * src/main.c (parse_opt): Exclude static symbols for --xref
2016-11-11BugfixSergey Poznyakoff2
* src/parser.c (tokdel): Fix amount of memory to move. * THANKS: Niklas Angebrand
2016-05-16Version 1.5release-1_5Sergey Poznyakoff5
* NEWS: Version 1.5 * configure.ac: Likewise. * src/main.c (parse_opt): Bugfix. * src/parser.c: Include ctype.h. * src/symbol.c (hash_symbol_hasher): Fix signature.
2016-03-22Fix flowchart-generation rule in Makefile and in docsSergey Poznyakoff2
Don't use $@ in explicit rules.
2016-03-22Update copyright yearsSergey Poznyakoff31
2016-03-22Properly handle invalid inputSergey Poznyakoff5
See https://savannah.gnu.org/bugs/?44113 * src/parser.c (cleanup_stack): Ignore negative deltas. (parse_function_declaration): Don't set caller if the symbol is in automatic storage. Note: that means nested function definitions can't be handled. * tests/invalid.at: New test case. * tests/Makefile.am: Add new test case. * tests/testsuite.at: Likewise.
2016-03-04Fix handling of such declarations as "struct x *a, *b";Sergey Poznyakoff28
* src/parser.c (fake_struct) (parse_variable_declaration): Correctly determine end of type. * tests/decl01.at: New test case. * tests/Makefile.am: Add new test. * tests/testsuite.at (CFLOW_CHECK_PROG): Don't add extra newline at the end of expout. All uses updated.
2015-03-02Switch to Texinfo 5 and ImprimaturSergey Poznyakoff9
* .gitmodules: Add imprimatur as a submodule. * Makefile.am: Update ACLOCAL_AMFLAGS * configure.ac: Initialize imprimatur * doc/Makefile.am: Likewise. * doc/gendocs.sh: New file. * doc/rendition.texi: Remove.
2015-03-02Update copyright yearsSergey Poznyakoff44
2014-02-26Version 1.4.90Sergey Poznyakoff4
2014-02-07Fix bootstrapSergey Poznyakoff1
2014-02-07Use exit codes consistently.Sergey Poznyakoff8
* doc/cflow.1: Document exit codes. * doc/cflow.texi: Likewise. * src/cflow.h: Define exit code constants. * src/main.c: Use exit codes consistently. * src/output.c: Likewise. * src/parser.c: Likewise. * src/posix.c: Likewise. * src/rc.c: Likewise.
2014-02-07Use wordsplit.[ch] (from grecs) instead of the obsolete argcv.[ch]Sergey Poznyakoff6
2014-02-07Update copyright statements. Remove 'Front-Cover' clause from cflow.texiSergey Poznyakoff48
2014-02-07Output debugging info to stderr instead of stdout.Sergey Poznyakoff3
2014-02-07Add a manpage.Sergey Poznyakoff3
2014-02-07Correctly handle functions returning struct/unionSergey Poznyakoff10
This fixes bug #31792. * bootstrap (gnulib_extra_files): Remove "missing" * gnulib: Upgrade * gnulib.modules: Add xalloc. * src/Makefile.am: Use AM_CPPFLAGS instead of INCLUDES. * src/parser.c (token_type_str) (dbgtok,debugtoken): New diagnostic functions. (tokdel,tokins): New functions. (nexttoken): Clear yylval.str. Print token stack state. (putback): Copy all data to tok. Print token stack state. (file_error,restore (is_function): Hanlde struct, union and enum: all these can appear in the return type specification. (fake_struct): Don't destroy token stack. Use tokdel and tokins to modify it. (parse_variable_declaration): Likewise. * tests/Makefile.am: Add new testcases. * tests/testsuite.at: Likewise. * tests/struct02.at: New file. * tests/struct03.at: New file. * tests/struct04.at: New file.
2011-10-11Final cleanup before the release.release-1_4Sergey Poznyakoff5
* NEWS: Update. * README: Update. * doc/cflow.texi: Update. * src/main.c (symbol_override): pass allocated argument to install. * src/parser.c (yyparse): Return 0.
2011-10-11Minor fix.Sergey Poznyakoff1
* src/parser.c (dcl): allow for qualifier wherever a modifier is allowed.
2011-10-11Change to double-space sentence spacing in cflow.texi.Sergey Poznyakoff1
2011-10-11Improve the docs.Sergey Poznyakoff4
* doc/cflow.texi: Document symbol classes and aliases. * src/cflow.rc: Minor change. * src/main.c: Mention aliasing feature in the docstring for --symbol.
2011-10-10Update NEWS.Sergey Poznyakoff1
2011-10-10Improve parser. Allow users to declare aliases to other symbols.Sergey Poznyakoff8
The latter feature is useful for declaring reserved symbols such as __restrict or __inline, e.g. --symbol __restrict:=restrict instructs cflow to treat `__restrict' exactly as `restrict'. * src/Makefile.am: Minor fix in rule for flowgraph. * src/c.l (init_tokens): New function, separated from init_lex. Install qualifiers. * src/cflow.h (symbol_alias): New flag. (symbol)<alias>: New member. (INSTALL_DEFAULT,INSTALL_OVERWRITE) (INSTALL_CHECK_LOCAL,INSTALL_UNIT_LOCAL): New defines. * src/cflow.rc: Rewrite for use with --cpp='gcc -E' * src/main.c (symbol_override): Extend syntax to allow for defining aliases to other tokens (--symbol __inline:=inline). * src/parser.c (print_token): print qualifiers and ops. (file_error): Change signature. All uses changed. (save_token): Improve output spacing. (skip_balanced): Treat LBRACE0 and RBRACE0 as { and }. (is_function): allow for qualifiers and wrappers before defintion. (parse_function_declaration): Remove PARM_WRAPPER case: it is taken care of by the caller. (fake_struct): leave when '(' is encountered. (parse_variable_declaration): Allow for qualifiers before the identifier. (skip_struct): Use skip_balanced. (dcl): Handle wrappers. Leave if a semicolon is encountered. (dirdcl): Optimize handing of wrapper. (maybe_parm_list): Handle qualifiers. (declare): allow for wrappers. (declare_type): Pass INSTALL_UNIT_LOCAL as a flag to install. * src/symbol.c (lookup): Argument is const now. (install): Change semantics of the 2nd argument. (install_ident): Change the call to install accordingly. * tests/nfparg.at: Change spacing to reflect changes to save_token.
2011-10-10Improve local symbol detection.Sergey Poznyakoff5
* src/cflow.h (install): Change prototype. * src/parser.c (skip_balanced): Don't put extra token back. * src/symbol.c (install): Take two arguments, the 2nd one specifying whether the symbol can be local to the compilation unit. All uses updated. (delete_symbol): Don't delete symbol in reverse tree mode, if its callee list is not empty.
2011-10-09Complement a43d8894.Sergey Poznyakoff7
* src/parser.c (save_token): Hanlde [ and ]. Do not enforce space after ). * tests/fdecl.at: Reflect changes in spacing. * tests/knr.at: Likewise. * tests/multi.at: Likewise. * tests/pwrapper.at: Likewise. * tests/struct00.at: Likewise. * tests/struct01.at: Likewise.
2011-10-09Accept qualifiers before declarations.Sergey Poznyakoff4
* src/c.l: Handle "inline" keyword. * src/main.c (symbol_optype): Add "qualifier". * src/parser.c (print_token): Correctly handle PARM_WRAPPER and STRING. (save_token): Handle QUALIFIER. In verbose mode, warn about unexpected symbols. (yyparse): Handle QUALIFIER and PARM_WRAPPER. * src/parser.h (QUALIFIER): New define.
2011-10-09Allow for wrappers following the structure definition.Sergey Poznyakoff11
* src/c.l (get_token): do not call yylex if previous call returned EOF. (source): Clear EOF indicator. * src/linked-list.c: Placate gcc warnings. * src/output.c: Likewise. * src/parser.c (skip_balanced): New function. (skip_struct): Allow for a wrapper after closing brace. * tests/struct00.at: New testcase. * tests/struct01.at: New testcase. * tests/Makefile.am: Add new testcases. * tests/testsuite.at: Likewise. * NEWS, configure.ac: Set version 1.4 * THANKS: Update.
2011-10-08BugfixSergey Poznyakoff2
* src/parser.c (func_body): Reset caller when the topmost block is closed.
2011-08-17Fix the output of branch marks in tree mode.Shigio YAMAGUCHI4
* src/output.c (direct_tree) (inverted_tree): Use is_last instead of is_printable to decide what mark to use for the line. * tests/bartest.at: New testcase. * tests/Makefile.am: Add bartest.at * tests/testsuite.at: Include bartest.at
2010-01-02Update copyright years.Sergey Poznyakoff37
Happy GNU Year!
2009-11-09Minor changesSergey Poznyakoff1
* bootstrap.conf: Ignore .bootstrap.
2009-11-09Housekeeping changes.Sergey Poznyakoff15
* .gitmodules: Make gnulib a submodule. * Makefile.am (SUBDIRS): Rename `lib' to `gnu'. * configure.ac: Likewise. * README-hacking: Update * bootstrap, bootstrap.conf: Update. * gnulib.modules: Remove `malloc'. * lib/Makefile.am: Remove. * lib/argcv.c, lib/argcv.h: Move to src. * po/POTFILES.in, src/Makefile.am: Reflect the above changes. * src/parser.c (declare): Improve diagnostic messages.
2009-11-09Raise version number to 1.3.1.Sergey Poznyakoff3
* configure.ac, NEWS: Raise patchlevel number. * Makefile.am (alpha, alphacheck): New rules.
2009-11-08Speed-up recursive call detection.Sergey Poznyakoff5
* src/depmap.c: New file. * src/Makefile.am: Add depmap.c. * src/cflow.h (struct symbol.ord): New member. (collect_symbols): Change signature. All callers updated. (collect_functions): New proto. (symbol_is_function): New proto. (cflow_depmap_t): New data type. (depmap_alloc, depmap_set) (depmap_isset, depmap_tc): New prototypes. * src/output.c (symbol_is_function): New function. (scan_tree): Remove. (tree_output): Use depmap to find out recursive calls. * src/symbol.c (static_func_list): New list. (static_free): Add static functions to static_func_list. (collect_symbols): Return size_t. Take additional number of slots in the 3rd argument. (collect_functions): New function.
2009-11-08Fix parsing of typedefs after `struct'.Sergey Poznyakoff1
* src/c.l: Include cflow.h (and, consequently, config.h) at the top of the generated source. (prev_token): New static. (get_token): Set prev_token. (ident): Treat any valid identifier after struct/union/enum as identifier (do not attempt any symbol lookup).
2009-07-11Version 1.3release-1_3Sergey Poznyakoff2

Return to:

Send suggestions and report system problems to the System administrator.