356 Commits (da8333718a2502188f847c8b8dd5d31ec45612ab)

Author SHA1 Message Date
Andrzej Kotulski fbddeba8a7 [clang] Don't inline global var initializers
8 years ago
Andrzej Kotulski 5cfde325fd [C++] Fix matching of qualified cpp names
8 years ago
Andrzej Kotulski 4da4949049 [clang][AST] Fix wrong type in translation of NoOp cast and MaterializeExpr
8 years ago
Mehdi Bouaziz f65ac4f094 [infer] std::mutex model to detect simple double lock
8 years ago
Andrzej Kotulski d4e9f0de64 [Makefile] Print duplicate symbols to separate file, not stderr
8 years ago
Andrzej Kotulski c695616eff [Makefile][C++] Run c++ tests with native libs
8 years ago
Andrzej Kotulski 24b56de0e9 Populate mangled file only if it's not empty
8 years ago
Andrzej Kotulski 6a02568982 [clang] Change procname file naming scheme
8 years ago
Andrzej Kotulski e08d9341c8 [clang] Run direct tests with --no-failures-allowed flag
8 years ago
Andrzej Kotulski 4b620316d3 Update fcp
8 years ago
Andrzej Kotulski ef79b20e17 [clang] Inline namespaces disappear, simplify infer's code
8 years ago
Jules Villard a79096efa8 [siof] generic model of std::ios_base::Init that prevents SIOF
8 years ago
Jules Villard a469e97987 [siof] add --siof-safe-methods whitelisting option
8 years ago
Andrzej Kotulski 40c84077d9 [C++] Fix model of std::vector
8 years ago
Andrzej Kotulski f697739b21 [C++ translation] Use correct type when generating dereference
8 years ago
Andrzej Kotulski 96ba74d18e [C++] whitelist C++ std::vector iterator implementation
8 years ago
Jules Villard c51c4a21ae [siof] collate multiple reports at the same line into one
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
Andrzej Kotulski 13fcb27431 [C++] Fix compilation errors coming from smart pointer models
8 years ago
Jules Villard e5863f5420 [siof] handle constexpr constructors
8 years ago
Jules Villard 9cc9cc101c [IR] add Static_local_var pvar kind and use it in clang
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
Sam Blackshear adacee51e2 [quandary] switch to --issues-tests printing
8 years ago
Jules Villard 17179d4275 [siof] take POD into account
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 281d5b49fe [tests] sort bugs in InferPrint
8 years ago
Andrzej Kotulski 6b083af4f3 [tests] small refactor of frontend makefiles
8 years ago
Jules Villard 0085417e0d [siof] better error reports using `Errlog.loc_trace`s
8 years ago
Jules Villard 5bd8b7fa95 [make] compatibility with Debian testing
8 years ago
Sam Blackshear fcf57c6e09 [siof] add fancy interprocedural reporting
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
Sam Blackshear fde7a6ecf3 [quandary] support for full interprocedural traces
8 years ago
Andrzej Kotulski 28827b461a [clang] Get translation unit language from AST dump
8 years ago
Cristiano Calcagno a71902355f [debug][dotty] Fix issue in dotty output where overloaded functions were conflated
8 years ago
Sam Blackshear 874e7f000d [quandary] functions that transitively return sources are sources, not passthroughs
8 years ago
Sam Blackshear d76a7ef43a [quandary] functions that transitively call sinks are sinks, not passthroughs
8 years ago
Sam Blackshear d7ae77c7c2 [quandary] make intent/logging private data tests intraprocedural
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 175e85525d [tests] Convert java tests to avoid phony targets
8 years ago
Jules Villard 84af7c56f8 [SIOF] detect which variables need initialization
8 years ago
Josh Berdine f45cf115e6 [test] Do not use infer from PATH
8 years ago
Sam Blackshear 6fc1a7e20f [quandary] reporting on array passed to sink when contents of array are tainted
8 years ago
Jules Villard 5fe40bae12 [siof] check origin of globals and complain if potential siof
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
Sam Blackshear 072fe0994f [quandary] reporting on getenv -> exec flows
8 years ago
Andrzej Kotulski 2deeb3673a [C++] Don't put model includes on -isystem path in test
8 years ago
Sam Blackshear 3624fea737 [quandary] tests for C++ analysis
8 years ago
Jules Villard c53bfe3159 [clang] rewrite plugin attachment logic in OCaml
8 years ago
Josh Berdine 6697ed781f [tests] Rerun test without swallowing output on failure
8 years ago
Cristiano Calcagno 847c141912 [tests] Clean up test files shared between frontend and endtoend tests
8 years ago
Cristiano Calcagno b0980bc35e [tests] Convert c/c++ frontend tests to new format.
8 years ago
Cristiano Calcagno ec67521c6f [backend] Fix issue where the attribute of a procedure definition could be overwritten with the attribute of a declaration
8 years ago
Cristiano Calcagno c613820a98 Convert c tests to the new testing format
8 years ago
Cristiano Calcagno 0b7ea202db Convert infer c++ tests to new format
8 years ago
Andrzej Kotulski 41e51bc28c Clean up smart pointer header models
8 years ago
Andrzej Kotulski 4637bf877e model unique_ptr<T> as T*
8 years ago
Andrzej Kotulski 4cd9470586 Skip Sil.Call instruction for some shared_ptr method calls
8 years ago
Andrzej Kotulski 2baf3f8456 Replace shared_ptr<T> structs with T* pointers
8 years ago
Jules Villard 145cb744f6 do not havoc actuals of skip functions with const parameters
8 years ago
Martino Luca 40b176fd01 Translate global const vars locally to a procedure
8 years ago
Daiva Naudziuniene ac9cabe677 Fixing Memory leak false positives in C++/ObjC
8 years ago
Jules Villard 10f10a90c6 diverge on `throw`
8 years ago
Andrzej Kotulski 0aa5101a05 Replace space with _ in type names
8 years ago
Andrzej Kotulski 5ed50f5a97 Keep more precise information in constructor's var_exp_typ
8 years ago
Daiva Naudziuniene dfb7c15303 Fixing Resource leak false positives assuming developers use raii.
8 years ago
Sam Blackshear d946a7bc33 fix ugly printing of NONE idents
9 years ago
Andrzej Kotulski 118295e03c Fix C++ models of c library
9 years ago
Sam Blackshear 7b58c71475 centralize creation and detection of clang tmp vars, fix errdesc/bucketing
9 years ago
Andrzej Kotulski 9cda4ca6bf Add models of shared_ptr comparison operators
9 years ago
Sam Blackshear 006bd06adb add concept of a dummy identifier
9 years ago
Andrzej Kotulski 9b07a3e762 Never call destructor on delete expression
9 years ago
Andrzej Kotulski e46cddb52b Use mangling in function parameters to encode its position
9 years ago
Andrzej Kotulski c7d6d904f7 Whitelist std::min and std::max
9 years ago
Dulma Churchill edc57f70f5 Translate CXXNoexceptExpr
9 years ago
Dulma Churchill 8bfa983716 Translate TypeTraitExpr
9 years ago
Dulma Churchill 52e037f77c Translate AttributedStmt and Fallthrough attribute
9 years ago
Andrzej Kotulski 3603fc3176 Modify cast_with_enforce.cpp test to not include <string>
9 years ago
Dulma Churchill b1e3d994bd Report more cases of null dereference as empty vector access
9 years ago
Andrzej Kotulski a825831625 Model vector::resize(n) as nonempty vector
9 years ago
Dulma Churchill 5adab3cb61 Fix StmtExpr
9 years ago
Dulma Churchill 5ed970efa9 Fix the return stmt that would not be the last instruction in the path in some cases
9 years ago
Sam Blackshear fd8a864c15 doing preanalysis on-demand
9 years ago
Dulma Churchill 60d9a19ae0 Fix bucketing for variables passed by reference
9 years ago
Andrzej Kotulski 0f895b0684 Improve empty vector tests
9 years ago
Dulma Churchill bf9d194e43 Translate builtin_expect as its first argument. Avoids weird symb. exec. problems
9 years ago
Andrzej Kotulski 617ffab0ac Add @generated comment to icfg.dot files
9 years ago
Andrzej Kotulski 3699b9c0dc Fix translation of passing struct parameters by value
9 years ago
Dulma Churchill de615594df Skip whitelisted functions form trace
9 years ago
Andrzej Kotulski 8ccdff649f Report empty vector access instead of null dereference
9 years ago
Andrzej Kotulski 058f4455dc Modify model of std::vector
9 years ago
Andrzej Kotulski bfce6bac47 Model empty vector access
9 years ago
Dulma Churchill 6c7c18e920 Model other functions from glog library
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
Andrzej Kotulski 05c218d84f Declare local variable for conditional in procdesc
9 years ago
Andrzej Kotulski 66d3d492f8 Fix translation of BinaryConditionalOperator
9 years ago
Dino Distefano b7ab1760a6 Translation of lambda [part one]
9 years ago
Cristiano Calcagno 054ad223a8 Fix control-flow graph shape when conditional is last instruction.
9 years ago
Dulma Rodriguez 6b2b76d956 Translate dynamic arrays to cpp classes
9 years ago
Andrzej Kotulski 590f73b59f Translate functions/methods from headers when they are referenced
9 years ago
Andrzej Kotulski 64bb3b62b3 Use variable stmt location info in init_res_trans
9 years ago
Dulma Rodriguez bc3134dd32 Translate initializing arrays of C++ classes
9 years ago
Dulma Rodriguez c0e5365458 Translate delete of arrays with the correct destructor
9 years ago
Dulma Rodriguez 0c5bca7a4b Translate arrays created with new
9 years ago
Dulma Rodriguez c6524d799f Translate C++ constructors after new
9 years ago
Andrzej Kotulski 675009a2ee Add unique_ptr model
9 years ago
Dulma Rodriguez 9f7bfea98f Translate CXXStdInitializerListExpr
9 years ago
Sam Blackshear 2991bd3fc3 using address-taken analysis for nullify placement rather than alias analysis
9 years ago
Andrzej Kotulski 0a32ff4400 Translate std::move from system headers to improve analysis quality
9 years ago
Dulma Rodriguez a62ccc7a05 Fixing init list expr when there is no variable or compound literal expression
9 years ago
Dulma Rodriguez 10a14a7324 Translate CXXTypeidExpr
9 years ago
Andrzej Kotulski eb76a441f9 Initial implementation of shared_ptr model
9 years ago
Dulma Rodriguez a4b87a0951 Translate destructor calls
9 years ago
Dulma Rodriguez 91a2eaa5f1 Translate CXXPseudoDestructorExpr
9 years ago
Dulma Rodriguez edbd7854b2 Translate SizeOfPackExpr
9 years ago
Dulma Rodriguez d499d5fc8e Translate C++ exceptions
9 years ago
Andrzej Kotulski decb263b1d Fix translation when accessing reference type fields
9 years ago
Dulma Rodriguez 06f40efab8 Add extra dereference to the variable of the method call to find null dereferences when a method called with null.
9 years ago
Andrzej Kotulski e4a0e9bbf7 Translate CXXDefaultInitExpr
9 years ago
Dulma Rodriguez 2fb2b3d9e1 Add the virtual flag of C++ methods in method calls
9 years ago
Andrzej Kotulski 4584f7f6fc [clang-format] Reformat all c/cpp/objc sources with clang-format
9 years ago
Andrzej Kotulski 50fc847c10 Compile C models again in C++
9 years ago
Andrzej Kotulski f703d780da Translate headers located inside analyzed project
9 years ago
Andrzej Kotulski 3320043217 Fix further problems with forward declarations in C/C++
9 years ago
Dulma Rodriguez bf90a64fb5 Fix the typing implication in the bi-abduction for non Java types
9 years ago
Andrzej Kotulski 8c832142b4 Don't add process type redeclaration unless it has definition
9 years ago
Dino Distefano c65947439f Implementing translation of CXXForRangeStmt
9 years ago
Andrzej Kotulski 49d7bdb6bd Translate CXXScalarValueInitExpr
9 years ago
Andrzej Kotulski 359ad9dd4b Translate constructor initializer
9 years ago
Andrzej Kotulski 7cabc86f77 Pass return parameter type in context
9 years ago
Andrzej Kotulski 8545a0310e Treat xvalues as they were lvalues
9 years ago
Andrzej Kotulski 36fb1f202c Deal with empty parameter names
9 years ago
Andrzej Kotulski da3a106541 Always translate CXXRecordDecl as Sil.Class
9 years ago
Andrzej Kotulski 75f4947cb1 Ignore type change in DerivedToBase cast
9 years ago
Dulma Rodriguez f4bbd44212 Translate dynamic cast for C++
9 years ago
Dulma Rodriguez 10fe998c12 Extending subtyping to C++
9 years ago
Andrzej Kotulski 9d7ab4b9c2 Translate conversion operators
9 years ago
Andrzej Kotulski bdab22a093 Support temporary objects (CXXTemporaryObjectExpr)
9 years ago
Andrzej Kotulski 44a6ec4f10 Fix return parameter handling
9 years ago
Andrzej Kotulski ec80d40bdd Populate return parameter when returning + turn on new feature for C/C++
9 years ago
Andrzej Kotulski 5eb7d9e994 Add init_pvar to trans_state and use it in c++ constructor
9 years ago
Andrzej Kotulski bd935c2347 Add destructor calls on delete expression
9 years ago
Andrzej Kotulski 70b003696f Translate bodies of destructors
9 years ago
Josh Berdine 63b57790f9 Fix indentation of multiline copyright comment
9 years ago
Andrzej Kotulski 173ee91844 Support template methods
9 years ago
Andrzej Kotulski 84549f691d Support decl_stmt in switch stmt
9 years ago
Andrzej Kotulski 92690551a6 Handle lvalues inside conditional operator right + fix init_expr_trans to fix materializeTempExpr not connecting nodes
9 years ago
Dulma Rodriguez 4b82e208ff Update facebook clang plugin after adding more info about ObjC properties
9 years ago
Andrzej Kotulski 96b659bb6e fix cpp frontend tests
9 years ago
Andrzej Kotulski 0bf7e46579 Translate C++ function templates
9 years ago
Andrzej Kotulski 71482fb472 Refactor CompoundBinaryOperator to use same code as BinaryOperator
9 years ago
Andrzej Kotulski 3f9a08f99c Defer cfg node creation for returnStmt and init_expr_trans
9 years ago
Andrzej Kotulski 9353c7bbfd Use qualified names for global variables
9 years ago
Andrzej Kotulski a06ce9ca0e Don't report null dereference on 'this' in C++ methods
9 years ago
Andrzej Kotulski 1eecdacea6 Ignore type change in UncheckedDerivedToBase cast
9 years ago
Andrzej Kotulski ddbf4d9c47 Support template classes
9 years ago
Andrzej Kotulski 81337ce2cb Support MaterializeTemporaryExpr
9 years ago
Andrzej Kotulski 16cb8e3f30 Translate CXXOperatorCallExpr
9 years ago
Andrzej Kotulski cb42fdcc31 Use fully qualified names for functions
9 years ago
Andrzej Kotulski 9748502a1a Handle C++ static methods
9 years ago
Andrzej Kotulski 71e424d6ba Use qual_name to extract class name from method decl
9 years ago
Andrzej Kotulski 55f9fb9d5e Add base class fields to C++ classes
9 years ago
Andrzej Kotulski c4b237e9f6 Fix type of CXXThisExpr_trans
9 years ago
Andrzej Kotulski db35afef1e Handle variable declaration inside condition expression correctly
9 years ago
Andrzej Kotulski a9bdf2b291 Translate c++ constructor calls in var initialization
9 years ago
Andrzej Kotulski 088293b6c2 Add pointer type to argument of method call
9 years ago
Andrzej Kotulski a7a332ea51 add different handling for C++ increment/decrement operators
9 years ago
Andrzej Kotulski 453924f303 Add basic translation of constructors
9 years ago
Andrzej Kotulski a5e1743382 Fix failing C++ frontend test
9 years ago
Andrzej Kotulski 5a07f767bb Handle assignment operations correctly
9 years ago
Andrzej Kotulski b86af1e5d1 Fix type information about reference types in CFGs
9 years ago
Andrzej Kotulski bfe10e3829 Fix handling of C++ references
9 years ago
Dulma Rodriguez ba00f08f00 Remove variable resolution and use pointers to declarations instead
9 years ago
Dulma Rodriguez 6278b779df Adding memory leak bucket for cpp
9 years ago
Andrzej Kotulski f63582893f Add basic e2e tests for C++
9 years ago
Andrzej Kotulski d4c3d39fb9 Refactor C++ frontend tests
9 years ago
Andrzej Kotulski 4d10c8d9f4 Add support for C++ this expression
9 years ago
Andrzej Kotulski b78d6f623a Split methods.cpp test into multiple ones
9 years ago
Andrzej Kotulski a045886eba Get better language information about functions/methods
9 years ago
Andrzej Kotulski e8949d16e4 [Frontend][C++] Use Sil.class for C++ class/struct/union types
9 years ago
Andrzej Kotulski bc050c4188 [C++] Add inheritance information for C++ classes
9 years ago
Dulma Rodriguez 65f4280d6e [clang] [3 of 3] Changes to the translation of record, classes and enums
9 years ago
Cristiano Calcagno 1e6247c872 [frontend] generate fresh ids separately for different procedures in the cfg
9 years ago
Andrzej Kotulski 394a3b4c29 [CFrontend] Sizeof should have ulong type
9 years ago
Andrzej Kotulski 198c3c82e1 [C++ frontend] Handle calling c++ methods
9 years ago
Andrzej Kotulski 7a839984da [C++] Add cpp methods signatures and implementations
9 years ago
Andrzej Kotulski 1d6873f471 [C++] Handle simple new cases
9 years ago
Jules Villard ca613a77ff [copyrightor] format start and end of copyright comments
10 years ago
Andrzej Kotulski b328ee1509 [C Frontend] Always add class prefix to a field name
10 years ago