446 Commits (dc29f8eecad542b757f97963dddfab24f756a96c)

Author SHA1 Message Date
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"
7 years ago
Sungkeun Cho 1f7a6e53fb [Inferbo] Add relational domain
7 years ago
Jules Villard 2cb96c356a [clang] remove capture hack
7 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
8 years ago
Andrzej Kotulski e366b0d9b5 [clang] Fix expression statement with conditional inside
8 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
9 years ago
Andrzej Kotulski 0aa5101a05 Replace space with _ in type names
9 years ago
Martino Luca 062ec6c872 Translate VAArgExpr
9 years ago
Martino Luca 4ba864780e Translate OffsetOfExpr
9 years ago
Sam Blackshear 7b58c71475 centralize creation and detection of clang tmp vars, fix errdesc/bucketing
9 years ago
Andrzej Kotulski 046654a9c0 Fix translation of unary operator! for all integral types
9 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
Andrzej Kotulski 05c218d84f Declare local variable for conditional in procdesc
9 years ago
Andrzej Kotulski 66d3d492f8 Fix translation of BinaryConditionalOperator
9 years ago
Cristiano Calcagno 054ad223a8 Fix control-flow graph shape when conditional is last instruction.
9 years ago
Andrzej Kotulski 590f73b59f Translate functions/methods from headers when they are referenced
9 years ago
Sam Blackshear 2991bd3fc3 using address-taken analysis for nullify placement rather than alias analysis
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
Dino Distefano b7d6f2a3bd Fixed problem with null pointer dereference in c library models.
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
Dulma Rodriguez 4264e94565 Fix problems with translation of InitListExpr
9 years ago
Sam Blackshear cd002e5c46 fixing angelic mode for struct values passed by reference
9 years ago
Andrzej Kotulski 49bf38c56f Fix symbolic links in cpp tests after formatting diff (part 2)
9 years ago
Andrzej Kotulski 1fdead5958 Fix symbolic links in cpp tests after formatting diff (part 1)
9 years ago
Andrzej Kotulski 4584f7f6fc [clang-format] Reformat all c/cpp/objc sources with clang-format
9 years ago
Sam Blackshear 5e9a21573b preventing Bad_footprint when passing struct value by reference
9 years ago
Andrzej Kotulski da3a106541 Always translate CXXRecordDecl as Sil.Class
9 years ago
Andrzej Kotulski a317ac38f2 Use init_exp in InitListExpr and CompoundLiteralExpr
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
jrm 6d91199be7 Generalize the detection of assertion failures to any kind of custom errors defined programatically in the orginal source code
9 years ago
Josh Berdine 63b57790f9 Fix indentation of multiline copyright comment
9 years ago
Andrzej Kotulski 6d7521809b Update fcp to get automatic location visitor
9 years ago
Andrzej Kotulski eeb7c33230 Update fcp
9 years ago
Andrzej Kotulski a1c1b10862 Use priority node for branches inside coditional operator
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 04e4546a91 Major update of facebook-clang-plugins
9 years ago
Andrzej Kotulski 71e424d6ba Use qual_name to extract class name from method decl
9 years ago
Jules Villard 2367b1c9ff cleanup two c tests that were causing clang warnings
9 years ago
Dulma Rodriguez de1a627335 Translate enums as ints and not add them to the tenv
9 years ago
Dulma Rodriguez 0db83eb5dd Adding the no progress bar option to the tests
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 87dfcdeb99 Replace '/' in anonymous type names
9 years ago
Andrzej Kotulski 5a07f767bb Handle assignment operations correctly
9 years ago
Dulma Rodriguez ba00f08f00 Remove variable resolution and use pointers to declarations instead
9 years ago
Andrzej Kotulski 7ac5a5c308 Refactor C frontend tests
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
Dino Distefano 7002d0d24c Adding a test in symbolic execution when a dangling uninitialized pointer is dereferenced
10 years ago
Jules Villard ca613a77ff [copyrightor] format start and end of copyright comments
10 years ago
Jules Villard f07c7f9093 [infer] handle sentinel arguments in symb exec
10 years ago
Jules Villard 768a850c58 [infer][clang] fix model of sockets
10 years ago
Andrzej Kotulski b328ee1509 [C Frontend] Always add class prefix to a field name
10 years ago
Jeremy Dubreil 902e5afa61 [infer][clang] fix name collision in the C tests
10 years ago
Cristiano Calcagno 3e199467f4 Complete copyright messages.
10 years ago
jrm 1356fd331f [infer][clang] test reporting of assertion failures
10 years ago
Cristiano Calcagno a87bedb5dd [Bucketing] Promote NPEs originating from a call with a null parameter to bucket b1.
10 years ago
Sam Blackshear 1baaa96fcc [Infer][C frontend] Fixing double translation of builtin args
10 years ago
Dulma Rodriguez 510fc4ed25 [clang] Sorting the fields in structs and classes. Was needed in the backend and forgotten.
10 years ago
Sam Blackshear d7a4474d90 [Infer][angelic] Adding angelic abduction on actuals passed by reference
10 years ago
Cristiano Calcagno 92ceae3cf6 [clang frontend] Fix translation of large integer constants.
10 years ago
jrm 5e9f88eaeb [infer][Java] more consistent names for env variables
10 years ago
Cristiano Calcagno 10970c4f51 [clang frontend] Pre-process AST locations to make them explicit and easier to deal with. Don't dive into include files.
10 years ago
Dino Distefano 404444d182 Fixed models for FILE C functions.
10 years ago
Dulma Rodriguez 34b911c935 [clang] Fixing the tests for the models of getc.
10 years ago
Dino Distefano 3ce393f511 Fixed model for getc and fgetc
10 years ago
jrm aa7bf8e69b [infer] fix inconsistencies between the errors that are saved in the generated reports and what is saved in standard output
10 years ago
Open Source Synchronization b8982270f2 initial synchronization
10 years ago