411 Commits (6a738045fdf89bdc76546f05779fdf20fdff8860)

Author SHA1 Message Date
Sungkeun Cho 524ae3a7e2 [inferbo] Return unknown value on non-const function calls
6 years ago
Sungkeun Cho 76bf31bc17 [inferbo] Add a test case of global constant
6 years ago
Mehdi Bouaziz 5817ff6adc [inferbo] Do not re-report issues if the precision hasn't improved
6 years ago
Mehdi Bouaziz 5a4d4f0882 [inferbo] Fail if trying to substitute non-symbolic conditions
6 years ago
Mehdi Bouaziz 1a75fa9ebd [inferbo] Propagate INFERBO_ALLOC_MAY_BE_ even when the bound is infinity
6 years ago
Mehdi Bouaziz 693089ab08 [inferbo] Alloc site in the trace for INFERBO_ALLOC_xx issues
6 years ago
Mehdi Bouaziz 07f22daada [inferbo] Report calls without ()
6 years ago
Mehdi Bouaziz ad986dffde Get rid of Declare_locals
6 years ago
Mehdi Bouaziz 12c0e245c6 [Inferbo] Simplify interval pretty-print
6 years ago
Martino Luca 632cb0e513 [Perf] Emit ZERO_EXECUTION_TIME_CALL issue-type, when zero-costing functions are met
6 years ago
Jules Villard 987ef9ef67 [biabd] ondemand analysis for `pthread_create` builtin
6 years ago
Sungkeun Cho 9eca72d405 [Inferbo] Add relational domains
6 years ago
Martino Luca c50b250576 [Perf] Compute the degree of polynomials
6 years ago
Jules Villard 6e44cae7cd [c] record complex sizeof() and leak from #86
6 years ago
Jules Villard b23449a7d2 [c] record C lists FP from #120
6 years ago
Martino Luca cccef6261d Revert "[Perf] Add cost information to the hashing function"
6 years ago
Martino Luca ac64be761f [Perf] Add cost information to the hashing function
6 years ago
Sungkeun Cho 06a04ca9f5 Revert "[Inferbo] Add relational domain"
6 years ago
Sungkeun Cho 1f7a6e53fb [Inferbo] Add relational domain
6 years ago
Jules Villard 2cb96c356a [clang] remove capture hack
6 years ago
Mehdi Bouaziz e5de1b6663 Cost: simplify range of parameters
7 years ago
Mehdi Bouaziz bea71d9168 Inferbo/perf: path rather than symbols
7 years ago
Ezgi Çiçek 4624ff48d1 Fix control variable imprecision in do while loops
7 years ago
Mehdi Bouaziz a8e84d1657 Cost: improve NonNegativePolynomial.(<=)
7 years ago
Mehdi Bouaziz 0639ef82b7 Cost: also take into account arguments in range
7 years ago
Ezgi Çiçek cf1c2acb54 [Cost] Add invariant analysis
7 years ago
Jules Villard 25627fd4d9 [c] add test for cleanup attribute
7 years ago
Ezgi Çiçek f80af7be93 Fix control var analysis for loops with multiple back-edges per loop head
7 years ago
Mehdi Bouaziz affced4303 Cost: actually, we needed data dependency
7 years ago
Ezgi Çiçek cb8e734bbb Get all the loop instructions
7 years ago
Daiva Naudziuniene be754c1558 [bi-abduction] Do not treat for union fields as uninitialized
7 years ago
Mehdi Bouaziz 1b63cb42b7 [cost] Compute range using post state
7 years ago
Jules Villard 30c470eb48 [tests] record error bucket in expected output
7 years ago
Jules Villard 8b882ac1df Change license to MIT
7 years ago
Daiva Naudziuniene c47071f186 [uninit] Initialize indirect function call arguments of pointer type
7 years ago
Sungkeun Cho cac08598a0 [inferbo] preciser widening of bound
7 years ago
Jules Villard 8715c4f892 [clang] make switch statement translation more robust
7 years ago
Ezgi Çiçek 1263bfa899 Add tests for cost analysis
7 years ago
Ezgi Çiçek 6f8bccb8fd Add tests for invariant problem in cost analysis
7 years ago
Mehdi Bouaziz aaf346d115 [cost] Polynomial domain
7 years ago
Jules Villard 766a16cd90 [clang] enforce that `instruction` always returns one SIL expression
7 years ago
Jules Villard dfe2ad5229 [camel] call `Format.pp_print_*` directly where appropriate
7 years ago
Mehdi Bouaziz 131ae4a801 [itv] Prettier print
7 years ago
Mehdi Bouaziz 5fe28785bc Cost: fix min
7 years ago
Jules Villard 902de9d6e3 [sil] make return value and type mandatory
7 years ago
Mehdi Bouaziz 1deaf7bfd6 Cost: instantiate symbolic cost after call
7 years ago
Mehdi Bouaziz 9c14e9d384 [Cost] Fix multiplication by 1
7 years ago
Mehdi Bouaziz 094eb9dcc7 [Cost] Use OneInstrPerNode CFG
7 years ago
Jules Villard 73a47d594c [debug] print procedures in alphabetical order in cfgs
7 years ago
Ezgi Çiçek 8f0701a01c Refine dependency analysis to remove vars at prune exit nodes
7 years ago
Ezgi Çiçek 523c2f539b change clang translation to track if_kind (i.e. the type of prune node)
7 years ago
Ezgi Çiçek 76300d55c7 Tracks variables that affect control flow for a more precise cost analysis
7 years ago
Ezgi Çiçek af5265f75d "Report infinity as error per function"
7 years ago
Jules Villard dee7414aa9 [inferbo] do not include location information in the bug description
7 years ago
Sungkeun Cho 4234288c93 [inferbo] Add a pointer arithmetic test
7 years ago
Sungkeun Cho e12a4a1071 [inferbo] Add traces in lift functions
7 years ago
Sungkeun Cho 1f6feef448 [inferbo] Revise eval_locs for array blocks
7 years ago
Sungkeun Cho a353d69a6e [inferbo] Fix test code
7 years ago
Sungkeun Cho 4aafe8a990 [inferbo][bugfix] Revise gathering safety conditions in sub-exp
7 years ago
Sungkeun Cho b42d66d557 [inferbo][bugfix] Pointer arithmetics on pointers to non-array
7 years ago
Sungkeun Cho 00e1139071 [frontend] Parse binary operator using types of parameters
7 years ago
Ezgi Çiçek 872daf1ba7 Add estimated cost to trace element
7 years ago
Dino Distefano e54df20eb7 Migrate to Itv.Bound
7 years ago
Dulma Churchill d04a7aed52 [clang] Removed the mangling part of Clang global variables in the error messages
7 years ago
Sungkeun Cho bd040cf696 [inferbo] Add an issue type for alarms by unknown function call
7 years ago
Sungkeun Cho 426af10130 [inferbo][bugfix] Pruning array block (NE case)
7 years ago
Sungkeun Cho 18ea3f99d8 [inferbo][bugfix] Plus semantics of interval domain
7 years ago
Jeremy Dubreil d74f189dfe [infer] add the report kind to the list of expected output
7 years ago
Daiva Naudziuniene 5898417fdd [frontend] Getting appropriate type information for exp in sizeof exp
7 years ago
Dino Distefano d2cc5e72f7 Extending analysis to parametric case
7 years ago
Mehdi Bouaziz 6f4c08f798 [inferbo][trace] Trace element for Unknown values
7 years ago
Mehdi Bouaziz 72ec9516d4 [inferbo][trace] Show some SymAssigns
7 years ago
Mehdi Bouaziz 55fee73669 [inferbo][traces] Nits
7 years ago
Sungkeun Cho 8fd04d5312 [inferbo][bugfix] Add index to offset at array fields
7 years ago
Dulma Churchill be53bc80e2 [lieveness] Fix false positive to do with a _Generic expression not being translated properly
7 years ago
Sungkeun Cho 09ae1f96fc [inferbo] Avoid array field is evaluated to the unknown location
7 years ago
Sungkeun Cho d6740e94b2 [inferbo] Collect array accesses from sub expressions
7 years ago
Dino Distefano 69bfc0535c [Experimental] First very basic version of performance analysis tool
7 years ago
Jules Villard c2c9c94d5e [bug] notice we do not support some versions of `assert`
7 years ago
Sam Blackshear 71a3843746 Revert occurence counting change
7 years ago
Mehdi Bouaziz 4fdaf257ae [inferbo/unreachable] Fix FPs with exit at end of block/procedure
7 years ago
Jeremy Dubreil 96ca6b6f02 [infer][bug hash] take the number of occurences of a report into account
7 years ago
Jules Villard 6b5390fe79 [cfg] rename iCFG to cfg in dotty files
7 years ago
Mehdi Bouaziz d71d759344 [inferbo] Fix division by constant
7 years ago
Jeremy Dubreil ea29749671 [infer] simpler bug hash
7 years ago
Jeremy Dubreil 7b8a5a1a2b [infer] always run all the pre-analysis passes independently form the checkers that are being run
7 years ago
Mehdi Bouaziz 168ce5a6bb [inferbo] Add alloc size safety condition
7 years ago
Sungkeun Cho 9deec6ffde [inferbo] Fix evaluation of Lindex
7 years ago
Jeremy Dubreil 55c585e1e0 [infer][biabduction] remove the bi-abduction based check for uninitialized values
7 years ago
Jules Villard b1841c6699 [checkers] make all models and tests use checkers
7 years ago
Jules Villard b95f29c8d1 various minor improvements
7 years ago
Mehdi Bouaziz 3b2e9c78de [clang trans] Simplify translation of if(not expr)
7 years ago
Mehdi Bouaziz 093bf285cc [inferbo] Do not report subsumed issues
7 years ago
Mehdi Bouaziz eff7bb5bdf [inferbo] Replace buckets with issue types
7 years ago
Mehdi Bouaziz 22c0520b46 [inferbo] Do not report duplicate issues
7 years ago
Mehdi Bouaziz d5c08ee752 [inferbo] Move proof obligations to their own module and split them
7 years ago
Jules Villard 94e7a7b141 [siof] one access per sink, better report deduplication
7 years ago
Jules Villard 72b1ac4b5a Turn off --keep-going by default
7 years ago
Jeremy Dubreil 919b9268d4 [infer][clang] simplify the translation of the prune nodes
7 years ago
Sungkeun Cho e5ee27af20 [Inferbo] Bugfix: incorrect pruning for unary negation
7 years ago
Jeremy Dubreil 20c57ad549 [infer][biabduction] add more context information about the reason to skip a method during the symbolic execution
7 years ago
Greg Nisbet 7fc5cb7930 exinferbo] check end of procedure for unreachability
7 years ago
Jia Chen 3e82890d6d Teach the prover and the normalizer aliasing rules between pointers and integers
7 years ago
Jia Chen 4733f878a4 [infer][backend] Extend the scope of NULL_TEST_AFTER_DEREFERENCE check
7 years ago
Andrzej Kotulski 6ca447fa6a [C] Fix issue with enum initialization lists
7 years ago
Andrzej Kotulski 88b74d524d [C++] Rewrite initListExpr_trans
7 years ago
Jules Villard b2ee1152fe [prover] do destructive normalization to prove more
7 years ago
Jeremy Dubreil 2a8e192280 [infer][biabduction] disable the reporting of return value ignored
7 years ago
Jules Villard fe01f47e41 [clang] correct sizeof info
7 years ago
Jeremy Dubreil bf11a27158 [infer] merge --failures-allowed and --keep-going
7 years ago
Jia Chen c9a2dcf7b1 Added constant-folding support for shifting
7 years ago
Jia Chen c4f153947b Removed unused option `allow_missing_index_in_proc_call`
7 years ago
Sam Blackshear 73f3eee9cd [checkers] use liveness analysis to create dead store checker
7 years ago
Andrzej Kotulski e366b0d9b5 [clang] Fix expression statement with conditional inside
7 years ago
Mehdi Bouaziz d1bc510cd5 [biabduction][test] Repro of issue 680
8 years ago
Jia Chen 77c56de7a9 [infer][backend] Do not create abduced var for addresses of local variables that are marked as Aundef
8 years ago
Kihong Heo 94d6efb83a [Inferbo] Add traces for buffer overrun bug report
8 years ago
Jia Chen f9e03681f8 Fix test
8 years ago
Kihong Heo 7176fc936a [inferbo] fix the semantics of unknown library calls
8 years ago
Jia Chen 806585db26 Fix aliasing rules about local variables introduced before
8 years ago
Sungkeun Cho f8b8dd1abb [infer] Parse unsigned short (uint16_t) as IUShort
8 years ago
Jia Chen a6757be036 Force emitting prune node for C++ comparison expressions
8 years ago
Jia Chen 62cfd554c7 Teach the Prover additional aliasing rules about local variables
8 years ago
Sungkeun Cho 52c0caafaf [inferbo] Declare unsigned typed parameters
8 years ago
Sungkeun Cho 1f721d0824 [inferbo] Revise modulo semantics for positive values
8 years ago
Mehdi Bouaziz aad66bc6f6 [inferbo] More tests
8 years ago
Kihong Heo 8567afdf55 [inferbo] add instantiation for parameters (call-by-ptr/ref)
8 years ago
Mehdi Bouaziz ec7b096ff6 [inferbo] Add warnings and errors for unreachable code
8 years ago
Kihong Heo 485814a75a [Inferbo] remove redundant alarm message
8 years ago
Mehdi Bouaziz f521e5fbc0 [inferbo] Models for exit, fgetc
8 years ago
Mehdi Bouaziz b2e03b1734 [inferbo] New test for call by ptr/ref
8 years ago
Kihong Heo de32a6728e [inferbo] remove bottoms in pointer arithmetic
8 years ago
Jules Villard 252c78bb0e [clang] initialize dynamically-size stack-allocated arrays
8 years ago
Jeremy Dubreil a56ac06c7e [infer][tests] update the expected test results for bufferoverrun analysis
8 years ago
Kihong Heo 984a81413a [inferbo] Top for unanalyzed variables (e.g., global variables)
8 years ago
Jules Villard 93ec47a5f4 [IR] add stride to array type
8 years ago
Mehdi Bouaziz 491cc2587b [infer] More mutex models
8 years ago
Jeremy Dubreil 9e4cbc919b [infer][checkers] Using the same filtering mechanisim for the biabduction analysis for the main Infer analysis and when using the checkers framework
8 years ago
Mehdi Bouaziz 5a57be9003 [infer][checkers] remove the bufferoverrun analyzer option and rely on the --bufferoverrun flag only
8 years ago
Jeremy Dubreil 0097d8a5cb [infer] First step to the biabduction analysis using the checkers framework
8 years ago
Dulma Churchill 6097c05d88 [clang] Add a preanalysis to compute nullability annotations
8 years ago
Andrzej Kotulski 462220ce3e [typ] Print type qualifiers in Typ.pp_full
8 years ago
Jules Villard 1b0ee6fbc3 [clang] add sizeof static value to translation
8 years ago
Mehdi Bouaziz 2dbde13335 [inferbo] Use Logging for logging
8 years ago
Sungkeun Cho 7212890846 [Bufferoverrun] More prune to make some nodes unreachable
8 years ago
Sungkeun Cho b4b32f8d3e [Bufferoverrun] set uninitialized values in array as top
8 years ago
Andrzej Kotulski 62d1d74d74 [Typ] Change Typ.pp_full to not include class keywords
8 years ago
Martino Luca a7b947f971 Add support to format reports natively
8 years ago
Jules Villard dba740632c [cli] deprecate multiletter short options
8 years ago
Andrzej Kotulski e08d9341c8 [clang] Run direct tests with --no-failures-allowed flag
8 years ago
Martino Luca 3eecb243e6 Customize tests output via InferPrint's command-line
8 years ago
Kihong Heo cef2f0e055 Inferbo
8 years ago
Andrzej Kotulski dd3de5b011 [clang frontend] Create nodes for dangling instructions
8 years ago
Jules Villard a6be58848b [make] make frontend tests more functional
8 years ago
Jules Villard bce1a1ff2e [make] make infer/src/Makefile less phony
8 years ago
Dino Distefano bd216f3205 Fixed problem with evaluation of sizeof which would give false positive
8 years ago
Josh Berdine 0cf71c74ef Sort nodes when printing cfg to dot file
8 years ago
Andrzej Kotulski 6192cb98b4 [DB] Use realpath when calling source_file_from_abs_path
8 years ago
Andrzej Kotulski 2810740377 [tests] Make project root infer/test/ for clang tests
8 years ago
Dulma Churchill 8415b6c38b [backend] do not log analysis_stops in debug_exceptions mode
8 years ago
Sam Blackshear 708c0bf1f8 [backend] eliminate phantom spaces in printing of types
8 years ago
Jules Villard 15d80e04df [tests] record summary of bug traces
8 years ago
Jules Villard ac47d115f5 [tests] include clang.make a bit later to fix compile target
8 years ago
Jules Villard 83f236451d [c] setlocale(3) accepts NULL as second argument
8 years ago
Andrzej Kotulski 6b083af4f3 [tests] small refactor of frontend makefiles
8 years ago
Jules Villard d5e7ee0d82 [tests] run tests using report.json and record all bugs + exceptions
8 years ago
Jules Villard c9bac51b81 [tests] make clang tests Makefile more functional
8 years ago
Cristiano Calcagno a71902355f [debug][dotty] Fix issue in dotty output where overloaded functions were conflated
8 years ago
Cristiano Calcagno 3fb8801b6c [IR] Change cfg representation so the node number is per-procedure and not per-cfg
8 years ago
Josh Berdine a9192cffd6 [config] Eliminate ad hoc environment variables
8 years ago
Josh Berdine f45cf115e6 [test] Do not use infer from PATH
8 years ago
Jules Villard 9535c4d89e [clang] convert filter_args_and_run_fcp_clang to OCaml
8 years ago
Jules Villard 62bfde8b5a [clang] translate global var initializers
8 years ago
Andrzej Kotulski 0f9f44f16e [backend] Report ignored return value on skip functions
8 years ago
Josh Berdine 6697ed781f [tests] Rerun test without swallowing output on failure
8 years ago
Cristiano Calcagno da01c2b94a [tests] Fix detection of changes in frontend tests
8 years ago
Cristiano Calcagno b0980bc35e [tests] Convert c/c++ frontend tests to new format.
8 years ago
Cristiano Calcagno c613820a98 Convert c tests to the new testing format
8 years ago
Jules Villard 4fe1615434 give correct type to root exps of array dereferences
8 years ago
Jules Villard 26a6594b90 detect unsigned values inside structured expressions
8 years ago
Andrzej Kotulski 185f6493bc Update fcp with new naming fixes
8 years ago
Sam Blackshear 8ff9f2afab making get_reachable_hpreds understand inductive predicates
8 years ago
Jules Villard fb7aed07c6 typo and whitespace cleanup in cFrontend_config
8 years ago
Andrzej Kotulski 0aa5101a05 Replace space with _ in type names
8 years ago
Martino Luca 062ec6c872 Translate VAArgExpr
8 years ago
Martino Luca 4ba864780e Translate OffsetOfExpr
8 years ago
Sam Blackshear 7b58c71475 centralize creation and detection of clang tmp vars, fix errdesc/bucketing
8 years ago
Andrzej Kotulski 046654a9c0 Fix translation of unary operator! for all integral types
8 years ago
Jules Villard b95b71fa85 add option to assume that malloc never returns null
9 years ago
Dulma Churchill 5adab3cb61 Fix StmtExpr
9 years ago
Sam Blackshear fd8a864c15 doing preanalysis on-demand
9 years ago
Andrzej Kotulski 617ffab0ac Add @generated comment to icfg.dot files
9 years ago
Dino Distefano daf043bff1 Fixing shortcircuit in binary operator.
9 years ago
Sam Blackshear 3f49f3a1d4 using liveness to add removetemps instructions
9 years ago
Sam Blackshear 20925df57c removing unused deallocate param in nullify instr
9 years ago
Sam Blackshear 4fd2f52fe8 new analysis for adding nullify's
9 years ago
Dulma Churchill c3fbd5af29 Model CHECK macro and fix the model for builtin_expect
9 years ago
Sam Blackshear 6f6da12b2c don't nullify params/locals at beginning of procedure
9 years ago
Jeremy Dubreil 8072d2c1e5 report errors when all the postconditions are error states
9 years ago
Jeremy Dubreil 049c353f52 Add a model for gzdopen
9 years ago