Summary: 200 instances, 178 unique Text Count (* TODO: proper modeling of equal vs exactly equal T95767672 *) 1 // TODO: this function has been disabled because it cannot be compiled with 2 (* TODO: handle exceptions T95448111 *) 1 (* TODO: doing [QuantifierElimination.eliminate_vars; DeadVariables.eliminate] a few times may 1 (* TODO std::scoped_lock *) 1 (* TODO: some form of logging *) 1 | LBRACKET enum_constant_list RBRACKET // TODO add optional comma 1 (* TODO: deprecate this unfortunately named function and use is_clang instead *) 1 (* TODO: could do this slightly more efficiently by keeping a list of priority zero nodes for 1 (* TODO: LLVM "eval" gets stuck *) 1 (* TODO depending on the result, the call might represent multiple values *) 1 (* TODO (t10287763): indent bodies of if/while *) 1 (* TODO: tmp to focus on invariant 1 *) 1 (* TODO: size_t should be implementation-dependent. *) 1 (* TODO: add more types *) 1 (* TODO (T28155039): understand why fields cannot be found here *) 1 let traces = TraceSet.bottom (* TODO: location of field declaration *) in 1 | String (* TODO: replace this with [char()] when we model strings as lists. *) 1 (* TODO: this won't be true once calls are added *) 1 (* TODO: avoid creating zipped map *) 1 (* TODO (#4040807): Needs to add the JBir temporary variables since other parts of the 1 | ContinueStmt (stmt_info, _) (* TODO: GotoStmt *) -> 1 | `List [`String "bin_element"; _anno; expression; size; (* TODO *) _type_specifier_list] -> 1 (* TODO: might remove this later when we have tests *) 2 (* TODO memmove *) 1 // TODO: add labeled_statement 1 (* TODO: identify some lemmas to cut down on the duplicated proof in the very 1 (* TODO: we may want to keep the "simpler" representative for [v_new] between [l1] and [l2] *) 1 (* TODO Question: should we allow overlap? *) 1 (* TODO *) 1 | Record of string (* TODO: fields*) 1 (* TODO: only mark public if exported. *) 1 (* TODO T28155039 Figure out when and what to log *) 1 (* TODO: include a hash of the automaton in a summary to avoid caching problems. *) 1 (* TODO: unimplemented GEP stuff *) 2 (* TODO: revisit throw when dealing with exceptions *) 1 (* TODO: this could be specified more precisely *) 1 (* TODO: convert the implementation that does not use PatternMatch *) 1 (* TODO: this is a hack than can disappear once we have proper AccessExpressions (t23176430) *) 1 make_simple_eager Mod (* TODO: check semantics of Rem vs Mod *) 1 Eradicate (* TODO *) ~user_documentation:"" 2 , [ _init (* TODO: ignored here because ignored in [CTrans] *) 1 (* TODO: actually allocate an array *) 1 (* TODO: need to know that stuck LLVM instructions translate to stuck 1 (* TODO: lookup dynamic type; currently not set in C++, should update model of [new] *) 1 (* TODO Question: What if size <> vals? *) 1 (* TODO: assert [_module] is current module *) 1 (* TODO: reimplement compute_distance_to_exit_node in ProcCfg, and use that instead *) 1 (* TODO: may not want to taint numbers or Enum's *) 1 (* TODO: write our own json handling using [Yojson] directly as atdgen generated parsers ignore 1 | Closure _ (* TODO: implement for C++ lambdas *) -> 1 (* Should be enabled for special integrations *) ~enabled:false Advice Eradicate (* TODO *) 1 (* TODO: prog_ok should enforce that the type is consistent *) 1 (TODO: record in the pre when a location is written to instead of just comparing values 1 exception (* TODO: this description is not clear *) 1 (* TODO: call user defined `new` when there is more than one placement argument *) 1 (* TODO: improve this for comparable symbols *) 1 (* TODO: fields *) 1 (* TODO: add to non-formula domains? *) 1 (* TODO: normalize here? *) 1 (* TODO: merging attributes together can produce contradictory attributes, eg [MustBeValid] + 1 ~hum:"@Nullsafe annotation is redundant" Advice Eradicate (* TODO *) ~user_documentation:"" 1 TODO: this should be part of [live_addresses] since all these addresses are actually 1 (* TODO: pointer to int and int to pointer casts *) 1 (* TODO: we could probably be less coarse than keeping *all* restricted variables. This 1 (* TODO: Structs are missing copy constructor instructions when passed by value *) 1 TODO (T5280249): investigate why argument lists can be of different length. *) 1 // TODO: unicode and other control chars 1 (* FIXME (T19882766): we need to disable this for Java because it breaks too many tests *) 2 (* TODO: Cover all cases. *) 1 (* TODO: limit the number of simple_states to some configurable number (default ~5) *) 1 (* TODO: Add types, and specs. *) 1 such cases before. TODO: check for cycles in a validation step (T115271156) *) 1 (* TODO std::try_lock *) 1 (* TODO: we could record that 0 is an invalid address at this point but this makes the 1 (* TODO Question: Should the same integer with two different sizes be equal *) 1 TODO: redesign this API so this case is modelled directly 1 (* TODO: check for constants, which are functional? *) 1 L.d_str "TODO: " ; 1 (* TODO: Initial global constants only once *) 1 (* TODO: name of the formal / actual *) [@@deriving compare, equal] 1 (* TODO: add cases for obj-c, c, c++ *) 1 (* FIXME: we need to work around a frontend hack for std::shared_ptr 1 (* TODO: it could be that the same value already had a binding; in that case we want to 1 | Map (* TODO: associations *) 1 /* FIXME random other things to review. */ 2 (* TODO: handle exceptions T95448111 *) 1 type type_specifier = (* TODO *) unit [@@deriving sexp_of] 1 (* TODO (T28898377): instead, we should extend trans_state with a list of maybe-throwing 1 (* TODO T114149430 *) 1 (TODO: we might want to keep only one of these, which would be a kind of recency model of 1 register ~enabled:false ~id:"DIVIDE_BY_ZERO" Error Biabduction (* TODO *) ~user_documentation:"" 1 (* TODO: Label *) 1 | identifier LPAREN formal_parameter_list RPAREN dims? //TODO add receiver_parameter 1 (* TODO: could add more kinds of operations too to show "x + y" or "x + 4", or even "x + 1 (* TODO: validate other forms, e.g., type constraints *) 1 (* TODO: Nondet I guess we need to know the type here *) 1 (* TODO: say what line the source happened in the current function *) 1 (* TODO: associations *) 1 (* TODO: pick the shortest path to a sink here instead (t14242809) *) 1 // FIXME: don't dump false when value is dependent 1 (* TODO: For now, it does not generate the initializers for static local variables. This is 1 (* TODO: see T110841433 *) 1 (* TODO desugar to qualtype *) 1 (* TODO (t4893479): make this check less angelic *) 1 (* TODO: (t7147096) extend this to detect mutual recursion *) 1 (* TODO: complain if onDestroyView is not defined, yet the Fragment has View fields *) 1 (* TODO: it could be that the same value already had a binding if several variables from the 1 register ~enabled:false ~id:"DANGLING_POINTER_DEREFERENCE" Error Biabduction (* TODO *) 1 ~hum:"Nullsafe mode: unchecked usage of unvetted third-party" Warning Eradicate (* TODO *) 1 (* TODO desugar typedeftype to qualtype *) 1 (* TODO: separate non-injection sinks for PreparedStatement's *) 1 | UserDefined of string (* TODO: arguments *) 1 (* TODO: the sink trace includes the history for the source in its own value history, 1 (* TODO: arguments *) 2 (* TODO *) 1 (* TODO: exceptional return address *) 1 (* TODO (T23832636): fail hard here *) 1 | Remote of {module_: string; type_: string} (* TODO: arguments *) 1 (* Note: we report the innermost loop for hoisting out. TODO: Future 1 (* TODO: support local variables in list comprehensions: T105967634 *) 1 (* TODO take range of multiplied one with log scale *) 1 (* TODO: resolve footprint identifier to formal name *) 1 ~hum:"@Nullsafe annotation is inconsistent with outer class" Warning Eradicate (* TODO *) 1 (*TODO: need to check the usage of "None" *) 1 (* TODO: add Pulse model for this function T93361792 *) 2 (* C++20 spaceship operator <=>, TODO *) 1 contain the reason for invalidation and thus we will filter out the report. TODO: 1 (* TODO: call the copy constructor of a value *) 1 (* TODO: proper modeling of not equal vs exactly not equal T95767672 *) 1 (* TODO: what should be the order of updates? *) 1 (* TODO (#6711750): fix type equality for arrays before failing here *) 1 L.d_str "TODO: " ; 1 TODO: handle calls into superclasses. 1 (* TODO: calculate these from the produced llair, and not the llvm *) 1 (* TODO: T72085946; take the cost of function into account *) 1 (* TODO: group by matching call sites, remember all access paths *) 1 (Now ensured by parser. TODO: refactor to ensure with types.) *) 1 (* TODO: this doesn't actually do "and" (it doesn't even take the caller interval into account) *) 1 (* TODO: validation, including basic type-checking *) 1 | Type of {name: string; type_: type_} (* TODO: arguments*) 1 (* TODO memset *) 1 (* FIXME (t10135167): call destructor on deleted pointer if it's not null *) 1 (* TODO: Add other types as they are needed by translation (otherwise it's dead code). *) 1 (* TODO: currently we do not support third-party annotations for fields. Because of this, 1 /* FIXME remove */ 2 (* TODO: missing documentation *) 1 (* TODO desugar to qualtyp *) 1 (* TODO *) 8 (** TODO: at the moment this doesn't try to discover and return new equalities implied by the 1 (* TODO: handle multiple procnames, e.g. with non-determinism branching *) ) 1 (* TODO Throw *) 1 (* TODO: handle signedness *) 1 (* TODO: add appropriate fields *) 1 () ; (* TODO : record field location *) 1 /* FIXME: Does not work in Firefox. */ 3 (* TODO: handle fields nullified in callees in the same file *) 1 (* TODO: we shouldn't add that for global variables? *) 1 (* TODO: handle bitshifting cases, port eval_binop from RacerD.ml *) 1 | identifier LPAREN formal_parameter_list RPAREN // TODO add receive_parameter 1 ~enabled:false Info Eradicate (* TODO *) ~user_documentation:"" 1 (* TODO: Finish *) 2 (* TODO Question is the number to allocate interpreted as a signed or 1 (* TODO: doing this properly will require taking account of language-specific coercion 1 (* TODO: This condition should be extracted into a dedicated rule *) 1 let merge reprs x ~into:y = (* TODO: implement path compression *) XMap.add x y reprs 1 ~hum:"Nullsafe mode: unchecked usage of a value" Warning Eradicate (* TODO *) 1 (* TODO: Raise an exception when given unexpected arguments. Before that, we need 1 // // FIXME: do not use the local dump method 2 (* TODO (#15748878): Fix conflict with method overloading by encoding in the procedure name 1 let index_typ = (* TODO: bogus *) StdTyp.void in 1 /* Records and variants FIXME */ 3 (* Create a dummy bugs.txt file for backwards compatibility. TODO: Stop doing that one day. *) 1 // TODO: lastLocColumn 1 (* TODO: this will need to behave differently depending on whether we're in C++ or Java *) 1 Ok (astate, (AbstractValue.mk_fresh (), (* TODO history *) ValueHistory.epoch)) 1 (* TODO: sort chain by inserted order *) 1 TODO: this can make use miss reporting memory leaks if another error is found *) 1