426 Commits (5aedc7e71cf324698abf037f5169f493efdf7dbe)

Author SHA1 Message Date
Andrzej Kotulski ad325d5047 Drop ti_raw field from clang_ast_t.type_info
8 years ago
Andrzej Kotulski 21ecba2d17 move retain/release special handling to function_deref_trans
8 years ago
Martino Luca 9e3b3c5d77 Fix C++ tests
8 years ago
Martino Luca 80c82c0cae Adapt Infer to the new changes introduced by the upgrade to Clang 4.0
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
Cristiano Calcagno 91d9cd83b5 Cleanup instruction names: use Load/Store instead of Letderef/Set.
9 years ago
Jules Villard 7603395ee9 qual_type fields are namespaced now
9 years ago
Martino Luca 40b176fd01 Translate global const vars locally to a procedure
9 years ago
Jules Villard 3b3f587652 update fcp to have qualifiers in ValueDecl types
9 years ago
Josh Berdine 25a52c7bbc Refactor operations on Exp.t in Sil to Exp
9 years ago
Josh Berdine d60965824e Refactor exp_equal and exp_compare to Exp
9 years ago
Josh Berdine 701eb20f83 Refactor Sil.exp to Exp.t
9 years ago
Josh Berdine fe780cb6ff Move comments to improve attachment
9 years ago
Josh Berdine 32146523ca Enable warning: Unexpected documentation comment
9 years ago
Jules Villard 10f10a90c6 diverge on `throw`
9 years ago
Jules Villard fb7aed07c6 typo and whitespace cleanup in cFrontend_config
9 years ago
Andrzej Kotulski 5ed50f5a97 Keep more precise information in constructor's var_exp_typ
9 years ago
Andrzej Kotulski ed3470c30e unify handling of many special cases in callExpr_trans
9 years ago
Martino Luca 062ec6c872 Translate VAArgExpr
9 years ago
Martino Luca 4ba864780e Translate OffsetOfExpr
9 years ago
Andrzej Kotulski f40033fc5f Update fcp
9 years ago
Andrzej Kotulski b8044c6b65 Use mangled names instead of function type for mangling
9 years ago
Andrzej Kotulski e61b6fe719 Use pointers to decls instead of class names when creating a type
9 years ago
Josh Berdine ccd32690d7 Refactor Sil.call_flags into separate CallFlags module
9 years ago
Josh Berdine eefe05b240 Refactor Sil.Subtype into separate Subtype module
9 years ago
Josh Berdine aba67b4a2a Refactor Sil.binop into separate Binop module
9 years ago
Josh Berdine 9487cab145 Refactor Sil.const into separate Const module
9 years ago
Josh Berdine 32d09545e2 Closure values are not constants
9 years ago
Dulma Churchill 0253608fab Separate the flow of the frontend checks form the translation
9 years ago
Sam Blackshear 7b58c71475 centralize creation and detection of clang tmp vars, fix errdesc/bucketing
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 1f089d0e4b update fcp commit
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
Dulma Churchill 7f3e99c3d4 Fix assert false when calling zero_value_of_numerical_type
9 years ago
Josh Berdine bbec166174 Refactor Sil.typ into separate Typ module
9 years ago
Josh Berdine a6a766b5f5 Refactor Sil.Int into separate IntLit module
9 years ago
Dulma Churchill 5adab3cb61 Fix StmtExpr
9 years ago
Dulma Churchill a68c45c2a9 Fix dyspatch_async calls
9 years ago
Josh Berdine a85a88d145 Extend Sizeof with final extensible array length
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
Dulma Churchill bf9d194e43 Translate builtin_expect as its first argument. Avoids weird symb. exec. problems
9 years ago
Dino Distefano daf043bff1 Fixing shortcircuit in binary operator.
9 years ago
Andrzej Kotulski 1a98bc6492 update facebook-clang-plugins
9 years ago
Andrzej Kotulski 3699b9c0dc Fix translation of passing struct parameters by value
9 years ago
Josh Berdine 3e2fa59262 Reimplement command line options
9 years ago
Sam Blackshear c92bbf362b removing need to pass around lists of temporary id's in the frontend
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
Andrzej Kotulski 05c218d84f Declare local variable for conditional in procdesc
9 years ago
Dulma Rodriguez be91fb5429 Fix toll free bridging
9 years ago
Andrzej Kotulski 66d3d492f8 Fix translation of BinaryConditionalOperator
9 years ago
Dulma Rodriguez 8a1288860b Make alloc save a given procanem in the path
9 years ago
Dino Distefano b7ab1760a6 Translation of lambda [part one]
9 years ago
Jules Villard 70c8494625 opacify the type of node ids
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
Josh Berdine e1020c8ebe Remove -open(Utils) compile flag hack
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
Josh Berdine fd062cf736 Refactor SymExec.ModelBuiltins into toplevel module
9 years ago
Cristiano Calcagno 509a666ee0 Refactor Sil.pvar into a separate module.
9 years ago
Cristiano Calcagno 53702e43e8 Created IR folder for the intermediate representaion files.
9 years ago
Sam Blackshear c03f39f20c Fixing some issues with Obj-C blocks
9 years ago
Josh Berdine 2dcd93204c Refactor SymExec.Builtin into toplevel module
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
Cristiano Calcagno c198d76631 Clean up the Procname module, and remove remaining assert false
9 years ago
Dulma Rodriguez 9f7bfea98f Translate CXXStdInitializerListExpr
9 years ago
Sam Blackshear ab1ac822f6 Replacing Ctuple with Cclosure
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
Dino Distefano ce0ae5c821 Refactoring in preparation of implementing C++ lambda
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 c9e5d27e0d Translate GCCAsmStmt
9 years ago
Dulma Rodriguez 6c567f1104 Translate GenericSelectionExpr
9 years ago
Dulma Rodriguez ef3e516f6f Translate ImplicitValueInitExpr
9 years ago
Dulma Rodriguez d499d5fc8e Translate C++ exceptions
9 years ago
Sam Blackshear 2d89426170 fixing tenv_lookup
9 years ago
Sam Blackshear 337d2cc537 fixing tenv_add to add only struct_typ's
9 years ago
Dulma Rodriguez 379d185d74 Sort the fields in the tenv at the end of translation as some translations need the original order
9 years ago
Cristiano Calcagno f3ba6c3906 Revamped Timeout module to save and restore seconds and symops.
9 years ago
Dino Distefano be8f25c90b Improved/simplified framework for frontend checkers.
9 years ago
Dulma Rodriguez 4264e94565 Fix problems with translation of InitListExpr
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
Josh Berdine 77b22ded03 Warn on unused identifiers
9 years ago
Josh Berdine 02056079cf Warn of unused values
9 years ago
Josh Berdine 55cb61dbda Warn of unused open statements
9 years ago
Josh Berdine b155168083 Open Utils implicitly
9 years ago
Josh Berdine 2e4f4a0c5f Warn of label omitted in function application
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 1d6aea0fb9 Add typ to trans_state.var_exp
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 b08acedf29 Use clang for default argument resolution
9 years ago
Dulma Rodriguez f4bbd44212 Translate dynamic cast for C++
9 years ago
Andrzej Kotulski 262796d3bf Distinguish between C++ and objc class types
9 years ago
Andrzej Kotulski 9d7ab4b9c2 Translate conversion operators
9 years ago
Sam Blackshear 14e934205f implementing dynamic dispatch support for Java interfaces
9 years ago
Andrzej Kotulski 3dcd6490c2 Translate reinterpret_cast and const_cast
9 years ago
Cristiano Calcagno 7673d94600 Distinguish between class kinds: CPP, Java, Objc
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 e329916e5b Add basic translation of CXXBindTemporaryExpr
9 years ago
Andrzej Kotulski 1fe920c0c5 Cleanup code triggering code translation
9 years ago
Andrzej Kotulski ec80d40bdd Populate return parameter when returning + turn on new feature for C/C++
9 years ago
Andrzej Kotulski 2c8238849d Add return parameter to function/method call
9 years ago
Andrzej Kotulski 58be5d0eb0 Add return parameter to functions returning structs
9 years ago
Cristiano Calcagno 162dc42b5b Use a record for struct types instead of a 7-tuple.
9 years ago
Andrzej Kotulski a317ac38f2 Use init_exp in InitListExpr and CompoundLiteralExpr
9 years ago
Andrzej Kotulski 5eb7d9e994 Add init_pvar to trans_state and use it in c++ constructor
9 years ago
Andrzej Kotulski fcb561a1ee Use Sil.exp instead of var_res_trans to get initialized variable
9 years ago
Jules Villard 59a3b9c22a add temp var from compoundLiteralExpr to the function locals
9 years ago
Jules Villard 7b9b6841d2 translate CompoundLiteralExpr
9 years ago
Dulma Rodriguez 7855d6ecfa Fix the order of the translated stmts inside compound stmt
9 years ago
Dino Distefano d4d5c3bb2f Implemented new check CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK
9 years ago
Andrzej Kotulski df192d06c3 Use ints as clang pointers
9 years ago
Andrzej Kotulski bd935c2347 Add destructor calls on delete expression
9 years ago
jrm 6d91199be7 Generalize the detection of assertion failures to any kind of custom errors defined programatically in the orginal source code
9 years ago
jrm 2e7f5735d3 Extract the naming of types to its own module named Typename
9 years ago
jrm 4143d4eb2d Extract the kind of data structure, Class Struct or Union, into it own module
9 years ago
Andrzej Kotulski 7960798ca8 Deal with default parameter earlier
9 years ago
Andrzej Kotulski 0bf6333708 Remove parent_line_number information from cfg translation
9 years ago
Andrzej Kotulski 6d9c5c684e Fix naming problems with template methods
9 years ago
Sam Blackshear e0cf26e5c3 adding cf_interface flag--prereq for experimenting with dynamic dispatch for interfaces only
9 years ago
Dulma Rodriguez 1e5b8aeee7 Adding builtin setters and using them by skip
9 years ago
Andrzej Kotulski b544be7bef Use PriorityNode.compute_results_to_parent in init_expr_trans
9 years ago
Andrzej Kotulski 84549f691d Support decl_stmt in switch stmt
9 years ago
Andrzej Kotulski a8d5f4241d Put condition node to res_trans_cond
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 9c9504ba51 Using the link from method decl to property to determine whether the method is accessor
9 years ago
Andrzej Kotulski a1c1b10862 Use priority node for branches inside coditional operator
9 years ago
Andrzej Kotulski d4e76fa9ec Refactor UnaryOperator_trans to use compute_results_to_parent
9 years ago
Andrzej Kotulski 71482fb472 Refactor CompoundBinaryOperator to use same code as BinaryOperator
9 years ago
Dino Distefano 99c491e8c7 Introducing the DIRECT_ATOMIC_PROPERTY_ACCESS
9 years ago
Dulma Rodriguez 12d21c73dd Adding builtins for getters and calling them by skip
9 years ago
Andrzej Kotulski 5a4f5fa444 Refactor BinaryOperator_trans to use compute_results_to_parent
9 years ago
Andrzej Kotulski 60b4f6e766 Refactor PriorityNode.compute_results_to_parent to call collect_res_trans directly
9 years ago
Andrzej Kotulski 35bb8a9a26 Change order in which ids get generated for objcMessageExpr_trans
9 years ago
Andrzej Kotulski 3f9a08f99c Defer cfg node creation for returnStmt and init_expr_trans
9 years ago
Andrzej Kotulski 0d1af3cc46 Don't set succ_nodes for substatements in returnStmt and init_expr_trans
9 years ago
Andrzej Kotulski 1eecdacea6 Ignore type change in UncheckedDerivedToBase cast
9 years ago
Andrzej Kotulski 7389dfe976 Don't crash when method decl is not found
9 years ago
Dulma Rodriguez 0441919a42 Using clang's method resolution if possible
9 years ago
Andrzej Kotulski 81337ce2cb Support MaterializeTemporaryExpr
9 years ago
Dulma Rodriguez 369de5880e Add variable to locals in dispatch functions as usual
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 c2aaf867cd Cleanup handling of namespaces from ocaml code
9 years ago
Andrzej Kotulski 71e424d6ba Use qual_name to extract class name from method decl
9 years ago
Dulma Rodriguez 87a3d693e1 Adding static variables to blocks class to get retain cycles
9 years ago
Dino Distefano 316ad95659 Fixing Bad pointer comparison checker in fast iteration
9 years ago
Andrzej Kotulski c4b237e9f6 Fix type of CXXThisExpr_trans
9 years ago
Andrzej Kotulski 3262640214 Move translation of init_expr to general function
9 years ago
Andrzej Kotulski 1180aabe39 Fix result of returnStmt_trans
9 years ago
Dulma Rodriguez de1a627335 Translate enums as ints and not add them to the tenv
9 years ago
Andrzej Kotulski db35afef1e Handle variable declaration inside condition expression correctly
9 years ago
Andrzej Kotulski 3b4dda102b Change return type of CTrans.loop_instruction
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 9c578406a1 update clang plugin version
9 years ago
Andrzej Kotulski be07cdda2a Factor out some parts of CXXMemberCallExpr
9 years ago
Andrzej Kotulski 9e39f3bf72 Refactor of declRefExpr_trans & MemberExpr_trans
9 years ago
Andrzej Kotulski 1c80ba8bb7 simplify code handling default paramters
9 years ago
Andrzej Kotulski 453924f303 Add basic translation of constructors
9 years ago
Jules Villard 7d0a7568f3 put Util.list_* functions into an IList module
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
Jules Villard 2af1687cd4 add builtin for dictionary literals
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 e49d9d6f4d Adding an outer context to the context in case of blocks
9 years ago
Andrzej Kotulski aa1951cad4 Create generic way of generating extra instructions
9 years ago
Andrzej Kotulski f01a639605 Slight improvement of block function handling
9 years ago
Andrzej Kotulski 4d10c8d9f4 Add support for C++ this expression
9 years ago
Andrzej Kotulski a045886eba Get better language information about functions/methods
9 years ago
Andrzej Kotulski d6b1d422fd Update fcp and remove qual_type type
9 years ago
Dulma Rodriguez 0b0cd0d38d [clang] Using qual names for fields
9 years ago
Dulma Rodriguez e26f9b4dd4 [clang] Removing the use of raw types
9 years ago
Dulma Rodriguez fd853f97ca [clang] C function names depend only on their name (and their file is they are static, and their type if we are in C++)
9 years ago
Dulma Rodriguez 51e0e40bc7 [clang] [2 of 3] Dealing with custom ast expressions and flow of types in the frontend.
9 years ago
Dulma Rodriguez e5f6df74b0 [clang] Add procdescs to cxx method. Forgotten from last commit
10 years ago
Dulma Rodriguez 3cddd0489c [clang] Use the map of pointers to find method declarations and build method signatures
10 years ago
Andrzej Kotulski 394a3b4c29 [CFrontend] Sizeof should have ulong type
10 years ago
Jules Villard cc70507552 [clang] unopen some modules
10 years ago
Andrzej Kotulski a570bf5b85 [CFrontend] Replace names containing Method with ObjCMethod
10 years ago
Andrzej Kotulski 198c3c82e1 [C++ frontend] Handle calling c++ methods
10 years ago
Andrzej Kotulski 7a839984da [C++] Add cpp methods signatures and implementations
10 years ago
Jules Villard 85b0ef7266 [clang] Refactor of creating method signatures. First step to use the map of pointers to find method declarations.
10 years ago
Andrzej Kotulski be0e3c417a Update fcp version
10 years ago
Andrzej Kotulski 1d6873f471 [C++] Handle simple new cases
10 years ago
Andrzej Kotulski 3b22adfc15 [C Frontend][Refactor] Remove code duplication on debug messages
10 years ago
Andrzej Kotulski 5169419216 [C frontend] Improve ObjCIvarRef/Member Exprs
10 years ago
Dulma Rodriguez 732d23ce4d [clang] Add is_instance as part of the type of objc methods
10 years ago
Jules Villard bae8a4dced [whitespace] indent .ml files as well
10 years ago
Jules Villard 6911a1516c [whitespace] ocp-indent the code
10 years ago
Dulma Rodriguez d7655a087e [clang] Adding getters and setters for all the methods
10 years ago
Andrzej Kotulski 35400dd4f6 Rename Procname.from_string
10 years ago
Andrzej Kotulski 687f4958c8 Change procname types for objc/c functions
10 years ago
Dino Distefano 35b7011f81 Treating blocks iterators for NSArray
10 years ago
Andrzej Kotulski b328ee1509 [C Frontend] Always add class prefix to a field name
10 years ago
Cristiano Calcagno 3e199467f4 Complete copyright messages.
10 years ago
Dulma Rodriguez b79028af32 [clang] Remove call to create_local_procdesc and create it only when it's called.
10 years ago
Andrzej Kotulski 927653e8d8 Update facebook-clang-plugin
10 years ago
Andrzej Kotulski 9f9bc53361 [Frontend][C++] Add support for default params
10 years ago
Sam Blackshear 1baaa96fcc [Infer][C frontend] Fixing double translation of builtin args
10 years ago
Andrzej Kotulski 76203aa847 [Frontend][C++] Add translation for static cast
10 years ago
Andrzej Kotulski 819227d97d [C++][Frontend] Add translation for nullptr
10 years ago
Dulma Rodriguez d3f20dcaca [clang] Fix translation of fast loops
10 years ago
Dulma Rodriguez 510fc4ed25 [clang] Sorting the fields in structs and classes. Was needed in the backend and forgotten.
10 years ago
Cristiano Calcagno 92ceae3cf6 [clang frontend] Fix translation of large integer constants.
10 years ago
Cristiano Calcagno 3a51764d4c [clang frontend] Simplify logging functions.
10 years ago
Open Source Synchronization b8982270f2 initial synchronization
10 years ago