@@ -1748,43 +1748,42 @@ void goto_instrument_parse_optionst::help()
1748
1748
" Usage: Purpose:\n "
1749
1749
" \n "
1750
1750
" goto-instrument [-?] [-h] [--help] show help\n "
1751
- " goto-instrument in out perform instrumentation\n "
1752
- " \n "
1753
- " Main options:\n "
1754
- HELP_DOCUMENT_PROPERTIES
1755
- " --dot generate CFG graph in DOT format\n "
1756
- " --interpreter do concrete execution\n "
1751
+ " goto-instrument --version show version and exit\n "
1752
+ " goto-instrument [options] in [out] perform analysis or instrumentation\n "
1757
1753
" \n "
1758
1754
" Dump Source:\n "
1759
1755
HELP_DUMP_C
1760
1756
" \n "
1761
1757
" Diagnosis:\n "
1762
1758
HELP_SHOW_PROPERTIES
1759
+ HELP_DOCUMENT_PROPERTIES
1763
1760
" --show-symbol-table show loaded symbol table\n "
1764
1761
" --list-symbols list symbols with type information\n "
1765
1762
HELP_SHOW_GOTO_FUNCTIONS
1766
1763
HELP_GOTO_PROGRAM_STATS
1767
- " --drop-unused-functions drop functions trivially unreachable from main function \n " // NOLINT(*)
1764
+ " --dot generate CFG graph in DOT format \n "
1768
1765
" --print-internal-representation\n " // NOLINTNEXTLINE(*)
1769
1766
" show verbose internal representation of the program\n "
1770
1767
" --list-undefined-functions list functions without body\n "
1771
- " --show-struct-alignment show struct members that might be concurrently accessed\n " // NOLINT(*)
1772
- " --show-natural-loops show natural loop heads\n "
1773
1768
// NOLINTNEXTLINE(whitespace/line_length)
1774
1769
" --list-calls-args list all function calls with their arguments\n "
1775
1770
" --call-graph show graph of function calls\n "
1776
1771
// NOLINTNEXTLINE(whitespace/line_length)
1777
1772
" --reachable-call-graph show graph of function calls potentially reachable from main function\n "
1778
1773
HELP_SHOW_CLASS_HIERARCHY
1774
+ HELP_VALIDATE
1775
+ // NOLINTNEXTLINE(whitespace/line_length)
1776
+ " --validate-goto-binary check the well-formedness of the passed in goto\n "
1777
+ " binary and then exit\n "
1778
+ " --interpreter do concrete execution\n "
1779
+ " \n "
1780
+ " Data-flow analyses:\n "
1781
+ " --show-struct-alignment show struct members that might be concurrently accessed\n " // NOLINT(*)
1779
1782
// NOLINTNEXTLINE(whitespace/line_length)
1780
1783
" --show-threaded show instructions that may be executed by more than one thread\n "
1781
1784
" --show-local-safe-pointers show pointer expressions that are trivially dominated by a not-null check\n " // NOLINT(*)
1782
1785
" --show-safe-dereferences show pointer expressions that are trivially dominated by a not-null check\n " // NOLINT(*)
1783
1786
" *and* used as a dereference operand\n " // NOLINT(*)
1784
- HELP_VALIDATE
1785
- // NOLINTNEXTLINE(whitespace/line_length)
1786
- " --validate-goto-binary check the well-formedness of the passed in goto\n "
1787
- " binary and then exit\n "
1788
1787
" \n "
1789
1788
" Safety checks:\n "
1790
1789
" --no-assertions ignore user assertions\n "
@@ -1795,33 +1794,56 @@ void goto_instrument_parse_optionst::help()
1795
1794
" \n "
1796
1795
" Semantic transformations:\n "
1797
1796
<< HELP_NONDET_VOLATILE <<
1798
- HELP_UNWINDSET
1799
- " --unwindset-file <file> read unwindset from file\n "
1800
- " --partial-loops permit paths with partial loops\n "
1801
- " --unwinding-assertions generate unwinding assertions\n "
1802
- " --continue-as-loops add loop for remaining iterations after unwound part\n " // NOLINT(*)
1803
1797
" --isr <function> instruments an interrupt service routine\n "
1804
1798
" --mmio instruments memory-mapped I/O\n "
1805
1799
" --nondet-static add nondeterministic initialization of variables with static lifetime\n " // NOLINT(*)
1806
1800
" --nondet-static-exclude e same as nondet-static except for the variable e\n " // NOLINT(*)
1807
1801
" (use multiple times if required)\n "
1808
1802
" --check-invariant function instruments invariant checking function\n "
1809
- HELP_REMOVE_POINTERS
1810
1803
" --splice-call caller,callee prepends a call to callee in the body of caller\n " // NOLINT(*)
1811
1804
" --undefined-function-is-assume-false\n "
1812
1805
// NOLINTNEXTLINE(whitespace/line_length)
1813
1806
" convert each call to an undefined function to assume(false)\n "
1814
1807
HELP_INSERT_FINAL_ASSERT_FALSE
1815
1808
HELP_REPLACE_FUNCTION_BODY
1809
+ HELP_RESTRICT_FUNCTION_POINTER
1810
+ HELP_REMOVE_CALLS_NO_BODY
1811
+ " --add-library add models of C library functions\n "
1812
+ HELP_CONFIG_LIBRARY
1813
+ " --model-argc-argv <n> model up to <n> command line arguments\n "
1814
+ // NOLINTNEXTLINE(whitespace/line_length)
1815
+ " --remove-function-body <f> remove the implementation of function <f> (may be repeated)\n "
1816
+ HELP_REPLACE_CALLS
1816
1817
HELP_ANSI_C_LANGUAGE
1817
1818
" \n "
1818
- " Loop transformations:\n "
1819
+ " Semantics-preserving transformations:\n "
1820
+ " --drop-unused-functions drop functions trivially unreachable from main function\n " // NOLINT(*)
1821
+ HELP_REMOVE_POINTERS
1822
+ " --constant-propagator propagate constants and simplify expressions\n " // NOLINT(*)
1823
+ " --inline perform full inlining\n "
1824
+ " --partial-inline perform partial inlining\n "
1825
+ " --function-inline <function> transitively inline all calls <function> makes\n " // NOLINT(*)
1826
+ " --no-caching disable caching of intermediate results during transitive function inlining\n " // NOLINT(*)
1827
+ " --log <file> log in json format which code segments were inlined, use with --function-inline\n " // NOLINT(*)
1828
+ " --remove-function-pointers replace function pointers by case statement over function calls\n " // NOLINT(*)
1829
+ HELP_REMOVE_CONST_FUNCTION_POINTERS
1830
+ " --value-set-fi-fp-removal build flow-insensitive value set and replace function pointers by a case statement\n " // NOLINT(*)
1831
+ " over the possible assignments. If the set of possible assignments is empty the function pointer\n " // NOLINT(*)
1832
+ " is removed using the standard remove-function-pointers pass. \n " // NOLINT(*)
1833
+ " \n "
1834
+ " Loop information and transformations:\n "
1835
+ HELP_UNWINDSET
1836
+ " --unwindset-file <file> read unwindset from file\n "
1837
+ " --partial-loops permit paths with partial loops\n "
1838
+ " --unwinding-assertions generate unwinding assertions\n "
1839
+ " --continue-as-loops add loop for remaining iterations after unwound part\n " // NOLINT(*)
1819
1840
" --k-induction <k> check loops with k-induction\n "
1820
1841
" --step-case k-induction: do step-case\n "
1821
1842
" --base-case k-induction: do base-case\n "
1822
1843
" --havoc-loops over-approximate all loops\n "
1823
1844
" --accelerate add loop accelerators\n "
1824
1845
" --skip-loops <loop-ids> add gotos to skip selected loops during execution\n " // NOLINT(*)
1846
+ " --show-natural-loops show natural loop heads\n "
1825
1847
" \n "
1826
1848
" Memory model instrumentations:\n "
1827
1849
HELP_WMM_FULL
@@ -1840,41 +1862,20 @@ void goto_instrument_parse_optionst::help()
1840
1862
" force the aggressive slicer to preserve function <f>\n " // NOLINT(*)
1841
1863
" --aggressive-slice-preserve-function containing <f>\n "
1842
1864
" force the aggressive slicer to preserve all functions with names containing <f>\n " // NOLINT(*)
1843
- " --aggressive-slice-preserve-all-direct-paths \n "
1865
+ " --aggressive-slice-preserve-all-direct-paths \n "
1844
1866
" force aggressive slicer to preserve all direct paths\n " // NOLINT(*)
1845
1867
" \n "
1846
- " Further transformations:\n "
1847
- " --constant-propagator propagate constants and simplify expressions\n " // NOLINT(*)
1848
- " --inline perform full inlining\n "
1849
- " --partial-inline perform partial inlining\n "
1850
- " --function-inline <function> transitively inline all calls <function> makes\n " // NOLINT(*)
1851
- " --no-caching disable caching of intermediate results during transitive function inlining\n " // NOLINT(*)
1852
- " --log <file> log in json format which code segments were inlined, use with --function-inline\n " // NOLINT(*)
1853
- " --remove-function-pointers replace function pointers by case statement over function calls\n " // NOLINT(*)
1854
- " --value-set-fi-fp-removal build flow-insensitive value set and replace function pointers by a case statement\n " // NOLINT(*)
1855
- " over the possible assignments. If the set of possible assignments is empty the function pointer\n " // NOLINT(*)
1856
- " is removed using the standard remove-function-pointers pass. \n " // NOLINT(*)
1857
- HELP_RESTRICT_FUNCTION_POINTER
1858
- HELP_REMOVE_CALLS_NO_BODY
1859
- HELP_REMOVE_CONST_FUNCTION_POINTERS
1860
- " --add-library add models of C library functions\n "
1861
- HELP_CONFIG_LIBRARY
1862
- " --model-argc-argv <n> model up to <n> command line arguments\n "
1863
- // NOLINTNEXTLINE(whitespace/line_length)
1864
- " --remove-function-body <f> remove the implementation of function <f> (may be repeated)\n "
1865
- HELP_REPLACE_CALLS
1866
- " \n "
1867
1868
" Code contracts:\n "
1868
1869
HELP_LOOP_CONTRACTS
1869
1870
HELP_REPLACE_CALL
1870
1871
HELP_ENFORCE_CONTRACT
1871
1872
" \n "
1872
- " Other options:\n "
1873
- " --version show version and exit\n "
1873
+ " User-interface options:\n "
1874
1874
HELP_FLUSH
1875
1875
" --xml output files in XML where supported\n "
1876
1876
" --xml-ui use XML-formatted output\n "
1877
1877
" --json-ui use JSON-formatted output\n "
1878
+ " --verbosity # verbosity level\n "
1878
1879
HELP_TIMESTAMP
1879
1880
" \n " ;
1880
1881
// clang-format on
0 commit comments