From b83bd1b5f795e3676eb6e75a0ac6a097aa6c3339 Mon Sep 17 00:00:00 2001 From: Jules Villard Date: Fri, 26 Mar 2021 06:49:42 -0700 Subject: [PATCH] [website] version all internal links Summary: The internal links for the "old latest" 1.0.0 version were wrong. The fix to `make new-website-version` is in the next diff. Reviewed By: martintrojer Differential Revision: D27360089 fbshipit-source-id: 8abefbd8f --- website/docs/04-absint-framework.md | 2 +- website/docs/support.md | 2 +- .../version-1.0.0/04-absint-framework.md | 2 +- .../version-1.0.0/all-issue-types.md | 262 +++++++++--------- .../checker-annotation-reachability.md | 8 +- .../version-1.0.0/checker-biabduction.md | 20 +- .../version-1.0.0/checker-bufferoverrun.md | 38 +-- .../checker-config-checks-between-markers.md | 2 +- .../version-1.0.0/checker-cost.md | 20 +- .../version-1.0.0/checker-eradicate.md | 34 +-- .../checker-fragment-retains-view.md | 2 +- .../version-1.0.0/checker-immutable-cast.md | 2 +- .../version-1.0.0/checker-impurity.md | 4 +- .../checker-inefficient-keyset-iterator.md | 2 +- .../version-1.0.0/checker-linters.md | 22 +- .../checker-litho-required-props.md | 4 +- .../version-1.0.0/checker-liveness.md | 2 +- .../version-1.0.0/checker-loop-hoisting.md | 8 +- .../version-1.0.0/checker-printf-args.md | 2 +- .../version-1.0.0/checker-pulse.md | 18 +- .../version-1.0.0/checker-purity.md | 12 +- .../version-1.0.0/checker-quandary.md | 44 +-- .../version-1.0.0/checker-racerd.md | 10 +- .../checker-resource-leak-lab.md | 2 +- .../version-1.0.0/checker-self-in-block.md | 10 +- .../version-1.0.0/checker-siof.md | 2 +- .../version-1.0.0/checker-starvation.md | 8 +- .../version-1.0.0/checker-topl-biabd.md | 2 +- .../version-1.0.0/checker-topl-pulse.md | 2 +- .../version-1.0.0/checker-uninit.md | 2 +- .../versioned_docs/version-1.0.0/support.md | 2 +- 31 files changed, 276 insertions(+), 276 deletions(-) diff --git a/website/docs/04-absint-framework.md b/website/docs/04-absint-framework.md index ea50f67fb..a7b3d42f0 100644 --- a/website/docs/04-absint-framework.md +++ b/website/docs/04-absint-framework.md @@ -84,7 +84,7 @@ in (search for "Liveness"). you can then run `infer run --liveness-only -- ` to run your -checker on real code. See [here](/docs/analyzing-apps-or-projects) for more +checker on real code. See [here](/docs/next/analyzing-apps-or-projects) for more details on the build systems supported by Infer. Other examples of simple intraprocedural checkers are diff --git a/website/docs/support.md b/website/docs/support.md index b99ccebf3..324222369 100644 --- a/website/docs/support.md +++ b/website/docs/support.md @@ -43,7 +43,7 @@ infer run -- xcodebuild -workspace HelloWorld.xcworkspace -scheme HelloWorld ### "infer [options] -- \" fails during a linking step The linker will sometimes not work if files have been compiled using a different -compiler, such as the one Infer uses [under the hood](/docs/infer-workflow) to +compiler, such as the one Infer uses [under the hood](/docs/next/infer-workflow) to analyze your files. A workaround consists in setting the `LD` environment variable to a dummy diff --git a/website/versioned_docs/version-1.0.0/04-absint-framework.md b/website/versioned_docs/version-1.0.0/04-absint-framework.md index a9cfc62e0..fb5f27fb8 100644 --- a/website/versioned_docs/version-1.0.0/04-absint-framework.md +++ b/website/versioned_docs/version-1.0.0/04-absint-framework.md @@ -84,7 +84,7 @@ in (search for "Liveness"). you can then run `infer run --liveness-only -- ` to run your -checker on real code. See [here](/docs/analyzing-apps-or-projects) for more +checker on real code. See [here](/docs/1.0.0/analyzing-apps-or-projects) for more details on the build systems supported by Infer. Other examples of simple intraprocedural checkers are diff --git a/website/versioned_docs/version-1.0.0/all-issue-types.md b/website/versioned_docs/version-1.0.0/all-issue-types.md index 3b1eab59f..ef89a222d 100644 --- a/website/versioned_docs/version-1.0.0/all-issue-types.md +++ b/website/versioned_docs/version-1.0.0/all-issue-types.md @@ -7,7 +7,7 @@ Here is an overview of the issue types currently reported by Infer. ## ASSIGN_POINTER_WARNING -Reported as "Assign Pointer Warning" by [linters](/docs/checker-linters). +Reported as "Assign Pointer Warning" by [linters](/docs/1.0.0/checker-linters). This check fires when a pointer to an Obj-C object is tagged with an `assign` property (similar to the `-Warc-unsafe-retained-assign` compiler flag). Not @@ -16,7 +16,7 @@ and use a dangling pointer. ## AUTORELEASEPOOL_SIZE_COMPLEXITY_INCREASE -Reported as "Autoreleasepool Size Complexity Increase" by [cost](/docs/checker-cost). +Reported as "Autoreleasepool Size Complexity Increase" by [cost](/docs/1.0.0/checker-cost). \[EXPERIMENTAL\] Infer reports this issue when the ObjC autoreleasepool's size complexity of a program increases in degree: e.g. from constant to linear or from logarithmic to quadratic. This @@ -25,7 +25,7 @@ two runs of infer on a file. ## AUTORELEASEPOOL_SIZE_COMPLEXITY_INCREASE_UI_THREAD -Reported as "Autoreleasepool Size Complexity Increase Ui Thread" by [cost](/docs/checker-cost). +Reported as "Autoreleasepool Size Complexity Increase Ui Thread" by [cost](/docs/1.0.0/checker-cost). \[EXPERIMENTAL\] Infer reports this issue when the ObjC autoreleasepool's complexity of the procedure increases in degree **and** the procedure runs on the UI (main) thread. @@ -38,14 +38,14 @@ Infer considers a method as running on the UI thread whenever: ## AUTORELEASEPOOL_SIZE_UNREACHABLE_AT_EXIT -Reported as "Autoreleasepool Size Unreachable At Exit" by [cost](/docs/checker-cost). +Reported as "Autoreleasepool Size Unreachable At Exit" by [cost](/docs/1.0.0/checker-cost). \[EXPERIMENTAL\] This issue type indicates that the program's execution doesn't reach the exit node. Hence, we cannot compute a static bound of ObjC autoreleasepool's size for the procedure. ## BAD_POINTER_COMPARISON -Reported as "Bad Pointer Comparison" by [linters](/docs/checker-linters). +Reported as "Bad Pointer Comparison" by [linters](/docs/1.0.0/checker-linters). Infer reports these warnings in Objective-C when a boxed primitive type such as `NSNumber *` is coerced to a boolean in a comparison. For example, consider the @@ -64,12 +64,12 @@ compare `n` to `nil` or call an accessor to clarify her intention. ## BIABDUCTION_MEMORY_LEAK -Reported as "Memory Leak" by [biabduction](/docs/checker-biabduction). +Reported as "Memory Leak" by [biabduction](/docs/1.0.0/checker-biabduction). See [MEMORY_LEAK](#memory_leak). ## BUFFER_OVERRUN_L1 -Reported as "Buffer Overrun L1" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Buffer Overrun L1" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). Buffer overrun reports fall into several "buckets" corresponding to the expected precision of the report. The higher the number, the more likely it is to be a false positive. @@ -97,37 +97,37 @@ report. The higher the number, the more likely it is to be a false positive. ## BUFFER_OVERRUN_L2 -Reported as "Buffer Overrun L2" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Buffer Overrun L2" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) ## BUFFER_OVERRUN_L3 -Reported as "Buffer Overrun L3" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Buffer Overrun L3" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) ## BUFFER_OVERRUN_L4 -Reported as "Buffer Overrun L4" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Buffer Overrun L4" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) ## BUFFER_OVERRUN_L5 -Reported as "Buffer Overrun L5" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Buffer Overrun L5" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) ## BUFFER_OVERRUN_S2 -Reported as "Buffer Overrun S2" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Buffer Overrun S2" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) ## BUFFER_OVERRUN_U5 -Reported as "Buffer Overrun U5" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Buffer Overrun U5" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). See [BUFFER_OVERRUN_L1](#buffer_overrun_l1) ## CAPTURED_STRONG_SELF -Reported as "Captured strongSelf" by [self-in-block](/docs/checker-self-in-block). +Reported as "Captured strongSelf" by [self-in-block](/docs/1.0.0/checker-self-in-block). This will happen in one of two cases generally: @@ -140,7 +140,7 @@ This will happen in one of two cases generally: ## CHECKERS_ALLOCATES_MEMORY -Reported as "Allocates Memory" by [annotation-reachability](/docs/checker-annotation-reachability). +Reported as "Allocates Memory" by [annotation-reachability](/docs/1.0.0/checker-annotation-reachability). A method annotated with `@NoAllocation` transitively calls `new`. @@ -157,13 +157,13 @@ class C implements I { ## CHECKERS_ANNOTATION_REACHABILITY_ERROR -Reported as "Annotation Reachability Error" by [annotation-reachability](/docs/checker-annotation-reachability). +Reported as "Annotation Reachability Error" by [annotation-reachability](/docs/1.0.0/checker-annotation-reachability). A method annotated with an annotation `@A` transitively calls a method annotated `@B` where the combination of annotations is forbidden (for example, `@UiThread` calling `@WorkerThread`). ## CHECKERS_CALLS_EXPENSIVE_METHOD -Reported as "Expensive Method Called" by [annotation-reachability](/docs/checker-annotation-reachability). +Reported as "Expensive Method Called" by [annotation-reachability](/docs/1.0.0/checker-annotation-reachability). A method annotated with `@PerformanceCritical` transitively calls a method annotated `@Expensive`. @@ -183,7 +183,7 @@ class C { ## CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED -Reported as "Expensive Overrides Unannotated" by [annotation-reachability](/docs/checker-annotation-reachability). +Reported as "Expensive Overrides Unannotated" by [annotation-reachability](/docs/1.0.0/checker-annotation-reachability). A method annotated with `@Expensive` overrides an un-annotated method. @@ -202,7 +202,7 @@ class A implements I { ## CHECKERS_FRAGMENT_RETAINS_VIEW -Reported as "Fragment Retains View" by [fragment-retains-view](/docs/checker-fragment-retains-view). +Reported as "Fragment Retains View" by [fragment-retains-view](/docs/1.0.0/checker-fragment-retains-view). This error type is Android-specific. It fires when a `Fragment` type fails to nullify one or more of its declared `View` fields in `onDestroyView`. In @@ -216,7 +216,7 @@ Action: Nullify the `View` in question in `onDestroyView`. ## CHECKERS_IMMUTABLE_CAST -Reported as "Checkers Immutable Cast" by [immutable-cast](/docs/checker-immutable-cast). +Reported as "Checkers Immutable Cast" by [immutable-cast](/docs/1.0.0/checker-immutable-cast). This error type is reported in Java. It fires when an immutable collection is returned from a method whose type is mutable. @@ -236,7 +236,7 @@ collection so that it can be modified. ## CHECKERS_PRINTF_ARGS -Reported as "Checkers Printf Args" by [printf-args](/docs/checker-printf-args). +Reported as "Checkers Printf Args" by [printf-args](/docs/1.0.0/checker-printf-args). This error is reported when the argument types to a `printf` method do not match the format string. @@ -250,27 +250,27 @@ Action: fix the mismatch between format string and argument types. ## COMPONENT_WITH_MULTIPLE_FACTORY_METHODS -Reported as "Component With Multiple Factory Methods" by [linters](/docs/checker-linters). +Reported as "Component With Multiple Factory Methods" by [linters](/docs/1.0.0/checker-linters). ## CONDITION_ALWAYS_FALSE -Reported as "Condition Always False" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Condition Always False" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). A condition expression is **always** evaluated to false. ## CONDITION_ALWAYS_TRUE -Reported as "Condition Always True" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Condition Always True" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). A condition expression is **always** evaluated to true. ## CONFIG_CHECKS_BETWEEN_MARKERS -Reported as "Config Checks Between Markers" by [config-checks-between-markers](/docs/checker-config-checks-between-markers). +Reported as "Config Checks Between Markers" by [config-checks-between-markers](/docs/1.0.0/checker-config-checks-between-markers). A config checking is done between a marker's start and end ## CONSTANT_ADDRESS_DEREFERENCE -Reported as "Constant Address Dereference" by [pulse](/docs/checker-pulse). +Reported as "Constant Address Dereference" by [pulse](/docs/1.0.0/checker-pulse). This is reported when an address obtained via a non-zero constant is dereferenced. If the address is zero then @@ -281,17 +281,17 @@ type. ## CREATE_INTENT_FROM_URI -Reported as "Create Intent From Uri" by [quandary](/docs/checker-quandary). +Reported as "Create Intent From Uri" by [quandary](/docs/1.0.0/checker-quandary). Create an intent/start a component using a (possibly user-controlled) URI. may or may not be an issue depending on where the URI comes from. ## CROSS_SITE_SCRIPTING -Reported as "Cross Site Scripting" by [quandary](/docs/checker-quandary). +Reported as "Cross Site Scripting" by [quandary](/docs/1.0.0/checker-quandary). Untrusted data flows into HTML; XSS risk. ## CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK -Reported as "Cxx Reference Captured In Objc Block" by [linters](/docs/checker-linters). +Reported as "Cxx Reference Captured In Objc Block" by [linters](/docs/1.0.0/checker-linters). With this check, Infer detects C++ references captured in a block. Doing this is almost always wrong. The reason is that C++ references are not managed pointers @@ -310,12 +310,12 @@ const int copied_v = v; ## DANGLING_POINTER_DEREFERENCE -Reported as "Dangling Pointer Dereference" by [biabduction](/docs/checker-biabduction). +Reported as "Dangling Pointer Dereference" by [biabduction](/docs/1.0.0/checker-biabduction). ## DEADLOCK -Reported as "Deadlock" by [starvation](/docs/checker-starvation). +Reported as "Deadlock" by [starvation](/docs/1.0.0/checker-starvation). This error is currently reported in Java. A deadlock occurs when two distinct threads try to acquire two locks in reverse orders. The following code @@ -380,14 +380,14 @@ To suppress reports of deadlocks in a method `m()` use the ## DEAD_STORE -Reported as "Dead Store" by [liveness](/docs/checker-liveness). +Reported as "Dead Store" by [liveness](/docs/1.0.0/checker-liveness). This error is reported in C++. It fires when the value assigned to a variables is never used (e.g., `int i = 1; i = 2; return i;`). ## DIRECT_ATOMIC_PROPERTY_ACCESS -Reported as "Direct Atomic Property Access" by [linters](/docs/checker-linters). +Reported as "Direct Atomic Property Access" by [linters](/docs/1.0.0/checker-linters). This check warns you when you are accessing an atomic property directly with an ivar. This makes the atomic property not atomic anymore. So potentially you may @@ -397,7 +397,7 @@ To fix the problem you need to access properties with their getter or setter. ## DISCOURAGED_WEAK_PROPERTY_CUSTOM_SETTER -Reported as "Discouraged Weak Property Custom Setter" by [linters](/docs/checker-linters). +Reported as "Discouraged Weak Property Custom Setter" by [linters](/docs/1.0.0/checker-linters). This check warns you when you have a custom setter for a weak property. When compiled with Automatic Reference Counting (ARC, `-fobj-arc`) ARC may set the @@ -466,12 +466,12 @@ Note that the custom setter was only invoked once. ## DIVIDE_BY_ZERO -Reported as "Divide By Zero" by [biabduction](/docs/checker-biabduction). +Reported as "Divide By Zero" by [biabduction](/docs/1.0.0/checker-biabduction). ## EMPTY_VECTOR_ACCESS -Reported as "Empty Vector Access" by [biabduction](/docs/checker-biabduction). +Reported as "Empty Vector Access" by [biabduction](/docs/1.0.0/checker-biabduction). This error type is reported only in C++, in versions >= C++11. @@ -488,12 +488,12 @@ int foo(){ ## ERADICATE_BAD_NESTED_CLASS_ANNOTATION -Reported as "@Nullsafe annotation is inconsistent with outer class" by [eradicate](/docs/checker-eradicate). +Reported as "@Nullsafe annotation is inconsistent with outer class" by [eradicate](/docs/1.0.0/checker-eradicate). ## ERADICATE_CONDITION_REDUNDANT -Reported as "Condition Redundant" by [eradicate](/docs/checker-eradicate). +Reported as "Condition Redundant" by [eradicate](/docs/1.0.0/checker-eradicate). This report is inactive by default. Condition (x != null) or (x == null) when x cannot be null: the first condition is always true and the second is always @@ -520,7 +520,7 @@ relevant. If the annotations are correct, you can remove the redundant case. ## ERADICATE_FIELD_NOT_INITIALIZED -Reported as "Field Not Initialized" by [eradicate](/docs/checker-eradicate). +Reported as "Field Not Initialized" by [eradicate](/docs/1.0.0/checker-eradicate). The constructor does not initialize a field f which is not annotated with @Nullable @@ -542,7 +542,7 @@ annotated with @Nullable. ## ERADICATE_FIELD_NOT_NULLABLE -Reported as "Field Not Nullable" by [eradicate](/docs/checker-eradicate). +Reported as "Field Not Nullable" by [eradicate](/docs/1.0.0/checker-eradicate). An assignment x.f = v where v could be null and field f is not annotated with @Nullable. @@ -567,12 +567,12 @@ values. ## ERADICATE_FIELD_OVER_ANNOTATED -Reported as "Field Over Annotated" by [eradicate](/docs/checker-eradicate). +Reported as "Field Over Annotated" by [eradicate](/docs/1.0.0/checker-eradicate). ## ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION -Reported as "Inconsistent Subclass Parameter Annotation" by [eradicate](/docs/checker-eradicate). +Reported as "Inconsistent Subclass Parameter Annotation" by [eradicate](/docs/1.0.0/checker-eradicate). A parameter of the overridden method is missing a @Nullable annotation present in the superclass. @@ -617,7 +617,7 @@ public class Main { ## ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION -Reported as "Inconsistent Subclass Return Annotation" by [eradicate](/docs/checker-eradicate). +Reported as "Inconsistent Subclass Return Annotation" by [eradicate](/docs/1.0.0/checker-eradicate). The return type of the overridden method is annotated @Nullable, but the corresponding method in the superclass is not. @@ -661,17 +661,17 @@ class Main { ## ERADICATE_META_CLASS_CAN_BE_NULLSAFE -Reported as "Class has 0 issues and can be marked @Nullsafe" by [eradicate](/docs/checker-eradicate). +Reported as "Class has 0 issues and can be marked @Nullsafe" by [eradicate](/docs/1.0.0/checker-eradicate). ## ERADICATE_META_CLASS_IS_NULLSAFE -Reported as "Class is marked @Nullsafe and has 0 issues" by [eradicate](/docs/checker-eradicate). +Reported as "Class is marked @Nullsafe and has 0 issues" by [eradicate](/docs/1.0.0/checker-eradicate). ## ERADICATE_META_CLASS_NEEDS_IMPROVEMENT -Reported as "Class needs improvement to become @Nullsafe" by [eradicate](/docs/checker-eradicate). +Reported as "Class needs improvement to become @Nullsafe" by [eradicate](/docs/1.0.0/checker-eradicate). Reported when the class either: - has at least one nullability issue, or @@ -679,12 +679,12 @@ Reported when the class either: ## ERADICATE_NULLABLE_DEREFERENCE -Reported as "Nullable Dereference" by [eradicate](/docs/checker-eradicate). +Reported as "Nullable Dereference" by [eradicate](/docs/1.0.0/checker-eradicate). ## ERADICATE_PARAMETER_NOT_NULLABLE -Reported as "Parameter Not Nullable" by [eradicate](/docs/checker-eradicate). +Reported as "Parameter Not Nullable" by [eradicate](/docs/1.0.0/checker-eradicate). Method call x.m(..., v, ...) where v can be null and the corresponding parameter in method m is not annotated with @Nullable @@ -711,12 +711,12 @@ of method m, as that code must now deal with null values. ## ERADICATE_REDUNDANT_NESTED_CLASS_ANNOTATION -Reported as "@Nullsafe annotation is redundant" by [eradicate](/docs/checker-eradicate). +Reported as "@Nullsafe annotation is redundant" by [eradicate](/docs/1.0.0/checker-eradicate). ## ERADICATE_RETURN_NOT_NULLABLE -Reported as "Return Not Nullable" by [eradicate](/docs/checker-eradicate). +Reported as "Return Not Nullable" by [eradicate](/docs/1.0.0/checker-eradicate). Method m can return null, but the method's return type is not annotated with @Nullable @@ -739,7 +739,7 @@ deal with null values. ## ERADICATE_RETURN_OVER_ANNOTATED -Reported as "Return Over Annotated" by [eradicate](/docs/checker-eradicate). +Reported as "Return Over Annotated" by [eradicate](/docs/1.0.0/checker-eradicate). This report is inactive by default. Method m is annotated with @Nullable but the method cannot return null @@ -764,17 +764,17 @@ annotation. ## ERADICATE_UNCHECKED_USAGE_IN_NULLSAFE -Reported as "Nullsafe mode: unchecked usage of a value" by [eradicate](/docs/checker-eradicate). +Reported as "Nullsafe mode: unchecked usage of a value" by [eradicate](/docs/1.0.0/checker-eradicate). ## ERADICATE_UNVETTED_THIRD_PARTY_IN_NULLSAFE -Reported as "Nullsafe mode: unchecked usage of unvetted third-party" by [eradicate](/docs/checker-eradicate). +Reported as "Nullsafe mode: unchecked usage of unvetted third-party" by [eradicate](/docs/1.0.0/checker-eradicate). ## EXECUTION_TIME_COMPLEXITY_INCREASE -Reported as "Execution Time Complexity Increase" by [cost](/docs/checker-cost). +Reported as "Execution Time Complexity Increase" by [cost](/docs/1.0.0/checker-cost). Infer reports this issue when the execution time complexity of a program increases in degree: e.g. from constant to linear or from @@ -786,7 +786,7 @@ two runs of infer on a file. ## EXECUTION_TIME_COMPLEXITY_INCREASE_UI_THREAD -Reported as "Execution Time Complexity Increase Ui Thread" by [cost](/docs/checker-cost). +Reported as "Execution Time Complexity Increase Ui Thread" by [cost](/docs/1.0.0/checker-cost). Infer reports this issue when the execution time complexity of the procedure increases in degree **and** the procedure runs on the UI (main) thread. @@ -802,7 +802,7 @@ Infer considers a method as running on the UI thread whenever: ## EXECUTION_TIME_UNREACHABLE_AT_EXIT -Reported as "Execution Time Unreachable At Exit" by [cost](/docs/checker-cost). +Reported as "Execution Time Unreachable At Exit" by [cost](/docs/1.0.0/checker-cost). This issue type indicates that the program's execution doesn't reach the exit node. Hence, we cannot compute a static bound for the @@ -823,9 +823,9 @@ void infeasible_path_unreachable() { ## EXPENSIVE_LOOP_INVARIANT_CALL -Reported as "Expensive Loop Invariant Call" by [loop-hoisting](/docs/checker-loop-hoisting). +Reported as "Expensive Loop Invariant Call" by [loop-hoisting](/docs/1.0.0/checker-loop-hoisting). -We report this issue type when a function is [loop-invariant](/docs/all-issue-types#invariant_call) and also expensive (i.e. at least has linear complexity as determined by the [cost](/docs/checker-cost) analysis). +We report this issue type when a function is [loop-invariant](/docs/1.0.0/all-issue-types#invariant_call) and also expensive (i.e. at least has linear complexity as determined by the [cost](/docs/1.0.0/checker-cost) analysis). ```java int incr(int x) { @@ -850,12 +850,12 @@ void symbolic_expensive_hoist(int size) { ## EXPOSED_INSECURE_INTENT_HANDLING -Reported as "Exposed Insecure Intent Handling" by [quandary](/docs/checker-quandary). +Reported as "Exposed Insecure Intent Handling" by [quandary](/docs/1.0.0/checker-quandary). Undocumented. ## GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL -Reported as "Global Variable Initialized With Function Or Method Call" by [linters](/docs/checker-linters). +Reported as "Global Variable Initialized With Function Or Method Call" by [linters](/docs/1.0.0/checker-linters). This checker warns you when the initialization of global variable contain a method or function call. The warning wants to make you aware that some functions @@ -864,7 +864,7 @@ these initializations can slow down the start-up time of an app. ## GUARDEDBY_VIOLATION -Reported as "GuardedBy Violation" by [racerd](/docs/checker-racerd). +Reported as "GuardedBy Violation" by [racerd](/docs/1.0.0/checker-racerd). A field annotated with `@GuardedBy` is being accessed by a call-chain that starts at a non-private method without synchronization. @@ -885,7 +885,7 @@ Action: Protect the offending access by acquiring the lock indicated by the `@Gu ## IMPURE_FUNCTION -Reported as "Impure Function" by [impurity](/docs/checker-impurity). +Reported as "Impure Function" by [impurity](/docs/1.0.0/checker-impurity). This issue type indicates impure functions. For instance, below functions would be marked as impure: ```java @@ -900,7 +900,7 @@ void makeAllZero_impure(ArrayList list) { ## INEFFICIENT_KEYSET_ITERATOR -Reported as "Inefficient Keyset Iterator" by [inefficient-keyset-iterator](/docs/checker-inefficient-keyset-iterator). +Reported as "Inefficient Keyset Iterator" by [inefficient-keyset-iterator](/docs/1.0.0/checker-inefficient-keyset-iterator). This issue is raised when - iterating over a HashMap with `ketSet()` iterator @@ -931,39 +931,39 @@ void efficient_loop_ok(HashMap testMap) { ## INFERBO_ALLOC_IS_BIG -Reported as "Inferbo Alloc Is Big" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Inferbo Alloc Is Big" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). `malloc` is passed a large constant value. ## INFERBO_ALLOC_IS_NEGATIVE -Reported as "Inferbo Alloc Is Negative" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Inferbo Alloc Is Negative" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). `malloc` is called with a negative size. ## INFERBO_ALLOC_IS_ZERO -Reported as "Inferbo Alloc Is Zero" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Inferbo Alloc Is Zero" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). `malloc` is called with a zero size. ## INFERBO_ALLOC_MAY_BE_BIG -Reported as "Inferbo Alloc May Be Big" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Inferbo Alloc May Be Big" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). `malloc` *may* be called with a large value. ## INFERBO_ALLOC_MAY_BE_NEGATIVE -Reported as "Inferbo Alloc May Be Negative" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Inferbo Alloc May Be Negative" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). `malloc` *may* be called with a negative value. ## INFINITE_AUTORELEASEPOOL_SIZE -Reported as "Infinite Autoreleasepool Size" by [cost](/docs/checker-cost). +Reported as "Infinite Autoreleasepool Size" by [cost](/docs/1.0.0/checker-cost). \[EXPERIMENTAL\] This warning indicates that Infer was not able to determine a static upper bound on the ObjC autoreleasepool's size in the procedure. By default, this issue type is disabled. ## INFINITE_EXECUTION_TIME -Reported as "Infinite Execution Time" by [cost](/docs/checker-cost). +Reported as "Infinite Execution Time" by [cost](/docs/1.0.0/checker-cost). This warning indicates that Infer was not able to determine a static upper bound on the execution cost of the procedure. By default, this @@ -987,12 +987,12 @@ Consequently, we report an `INFINITE_EXECUTION_TIME`, corresponding to the bigge ## INSECURE_INTENT_HANDLING -Reported as "Insecure Intent Handling" by [quandary](/docs/checker-quandary). +Reported as "Insecure Intent Handling" by [quandary](/docs/1.0.0/checker-quandary). Undocumented. ## INTEGER_OVERFLOW_L1 -Reported as "Integer Overflow L1" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Integer Overflow L1" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). Integer overflows reports fall into several "buckets" corresponding to the expected precision of the report. The higher the number, the more likely it is to be a false positive. @@ -1011,33 +1011,33 @@ report. The higher the number, the more likely it is to be a false positive. ## INTEGER_OVERFLOW_L2 -Reported as "Integer Overflow L2" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Integer Overflow L2" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). See [INTEGER_OVERFLOW_L1](#integer_overflow_l1) ## INTEGER_OVERFLOW_L5 -Reported as "Integer Overflow L5" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Integer Overflow L5" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). See [INTEGER_OVERFLOW_L1](#integer_overflow_l1) ## INTEGER_OVERFLOW_U5 -Reported as "Integer Overflow U5" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Integer Overflow U5" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). See [INTEGER_OVERFLOW_L1](#integer_overflow_l1) ## INTERFACE_NOT_THREAD_SAFE -Reported as "Interface Not Thread Safe" by [racerd](/docs/checker-racerd). +Reported as "Interface Not Thread Safe" by [racerd](/docs/1.0.0/checker-racerd). This error indicates that you have invoked an interface method not annotated with `@ThreadSafe` from a thread-safe context (e.g., code that uses locks or is marked `@ThreadSafe`). The fix is to add the `@ThreadSafe` annotation to the interface or to the interface method. For background on why these annotations are needed, see the detailed explanation -[here](/docs/checker-racerd#interface-not-thread-safe). +[here](/docs/1.0.0/checker-racerd#interface-not-thread-safe). ## INVARIANT_CALL -Reported as "Invariant Call" by [loop-hoisting](/docs/checker-loop-hoisting). +Reported as "Invariant Call" by [loop-hoisting](/docs/1.0.0/checker-loop-hoisting). We report this issue type when a function call is loop-invariant and hoistable, i.e. - the function has no side side effects (pure) @@ -1061,7 +1061,7 @@ void invariant_hoist(int size) { ## IVAR_NOT_NULL_CHECKED -Reported as "Ivar Not Null Checked" by [biabduction](/docs/checker-biabduction). +Reported as "Ivar Not Null Checked" by [biabduction](/docs/1.0.0/checker-biabduction). This error type is only reported in Objective-C. This is similar to Null dereference, but Infer hasn't found a whole trace where the error can happen, @@ -1080,17 +1080,17 @@ is not called with `nil`. ## JAVASCRIPT_INJECTION -Reported as "Javascript Injection" by [quandary](/docs/checker-quandary). +Reported as "Javascript Injection" by [quandary](/docs/1.0.0/checker-quandary). Untrusted data flows into JavaScript. ## LAB_RESOURCE_LEAK -Reported as "Lab Resource Leak" by [resource-leak-lab](/docs/checker-resource-leak-lab). +Reported as "Lab Resource Leak" by [resource-leak-lab](/docs/1.0.0/checker-resource-leak-lab). Toy issue. ## LOCKLESS_VIOLATION -Reported as "Lockless Violation" by [starvation](/docs/checker-starvation). +Reported as "Lockless Violation" by [starvation](/docs/1.0.0/checker-starvation). A method implements an interface signature annotated with `@Lockless` but which transitively acquires a lock. @@ -1113,7 +1113,7 @@ class C implements I { ## LOCK_CONSISTENCY_VIOLATION -Reported as "Lock Consistency Violation" by [racerd](/docs/checker-racerd). +Reported as "Lock Consistency Violation" by [racerd](/docs/1.0.0/checker-racerd). This is a C++ and Objective C error reported whenever: @@ -1138,12 +1138,12 @@ container (an array, a vector, etc). ## LOGGING_PRIVATE_DATA -Reported as "Logging Private Data" by [quandary](/docs/checker-quandary). +Reported as "Logging Private Data" by [quandary](/docs/1.0.0/checker-quandary). Undocumented. ## MEMORY_LEAK -Reported as "Memory Leak" by [pulse](/docs/checker-pulse). +Reported as "Memory Leak" by [pulse](/docs/1.0.0/checker-pulse). ### Memory leak in C @@ -1172,12 +1172,12 @@ objects from Core Foundation or Core Graphics don't get released. ## MISSING_REQUIRED_PROP -Reported as "Missing Required Prop" by [litho-required-props](/docs/checker-litho-required-props). +Reported as "Missing Required Prop" by [litho-required-props](/docs/1.0.0/checker-litho-required-props). As explained by the analysis. ## MIXED_SELF_WEAKSELF -Reported as "Mixed Self WeakSelf" by [self-in-block](/docs/checker-self-in-block). +Reported as "Mixed Self WeakSelf" by [self-in-block](/docs/1.0.0/checker-self-in-block). This happens when an Objective-C block captures both `self` and `weakSelf`, a weak pointer to `self`. Possibly the developer meant to capture only `weakSelf` @@ -1186,7 +1186,7 @@ instead of `strongSelf`. In this case, this could cause a retain cycle. ## MULTIPLE_WEAKSELF -Reported as "Multiple WeakSelf Use" by [self-in-block](/docs/checker-self-in-block). +Reported as "Multiple WeakSelf Use" by [self-in-block](/docs/1.0.0/checker-self-in-block). An Objective-C block uses `weakSelf` more than once. This could lead to unexpected behaviour. Even if `weakSelf` is not nil in the first use, it could @@ -1196,18 +1196,18 @@ in the block. ## MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE -Reported as "Mutable Local Variable In Component File" by [linters](/docs/checker-linters). +Reported as "Mutable Local Variable In Component File" by [linters](/docs/1.0.0/checker-linters). [Doc in ComponentKit page](http://componentkit.org/docs/avoid-local-variables) ## NULLPTR_DEREFERENCE -Reported as "Nullptr Dereference" by [pulse](/docs/checker-pulse). +Reported as "Nullptr Dereference" by [pulse](/docs/1.0.0/checker-pulse). See [NULL_DEREFERENCE](#null_dereference). ## NULL_DEREFERENCE -Reported as "Null Dereference" by [biabduction](/docs/checker-biabduction). +Reported as "Null Dereference" by [biabduction](/docs/1.0.0/checker-biabduction). Infer reports null dereference bugs in C, Objective-C and Java. The issue is about a pointer that can be `null` and it is dereferenced. This leads to a crash @@ -1309,12 +1309,12 @@ but that is for later. ## OPTIONAL_EMPTY_ACCESS -Reported as "Optional Empty Access" by [pulse](/docs/checker-pulse). +Reported as "Optional Empty Access" by [pulse](/docs/1.0.0/checker-pulse). Reports on accessing folly::Optional when it is none. ## PARAMETER_NOT_NULL_CHECKED -Reported as "Parameter Not Null Checked" by [biabduction](/docs/checker-biabduction). +Reported as "Parameter Not Null Checked" by [biabduction](/docs/1.0.0/checker-biabduction). This error type is reported only in Objective-C. It is similar to Null dereference, but Infer hasn't found a whole trace where the error can happen, @@ -1343,7 +1343,7 @@ system), that the argument won't be `nil`. This will silence the warning. ## POINTER_TO_CONST_OBJC_CLASS -Reported as "Pointer To Const Objc Class" by [linters](/docs/checker-linters). +Reported as "Pointer To Const Objc Class" by [linters](/docs/1.0.0/checker-linters). In Objective-C, `const Class *` represents a mutable pointer pointing to an Objective-C class where the ivars cannot be changed. More useful is @@ -1352,7 +1352,7 @@ changed. ## PREMATURE_NIL_TERMINATION_ARGUMENT -Reported as "Premature Nil Termination Argument" by [biabduction](/docs/checker-biabduction). +Reported as "Premature Nil Termination Argument" by [biabduction](/docs/1.0.0/checker-biabduction). This error type is reported in C and Objective-C. In many variadic methods, `nil` is used to signify the end of the list of input objects. This is similar @@ -1372,7 +1372,7 @@ created, and not an array `@[@"aaa", str, @"bbb"]` of size 3 as expected. ## PURE_FUNCTION -Reported as "Pure Function" by [purity](/docs/checker-purity). +Reported as "Pure Function" by [purity](/docs/1.0.0/checker-purity). This issue type indicates pure functions. For instance, below functions would be marked as pure: @@ -1410,12 +1410,12 @@ void set_impure(int x, int y) { ## QUANDARY_TAINT_ERROR -Reported as "Taint Error" by [quandary](/docs/checker-quandary). +Reported as "Taint Error" by [quandary](/docs/1.0.0/checker-quandary). Generic taint error when nothing else fits. ## RESOURCE_LEAK -Reported as "Resource Leak" by [biabduction](/docs/checker-biabduction). +Reported as "Resource Leak" by [biabduction](/docs/1.0.0/checker-biabduction). Infer reports resource leaks in C, Objective-C and Java. In general, resources are entities such as files, sockets, connections, etc, that need to be closed @@ -1693,7 +1693,7 @@ useful, but you cannot use it blindly when you see a resource-allocation site. ## RETAIN_CYCLE -Reported as "Retain Cycle" by [biabduction](/docs/checker-biabduction). +Reported as "Retain Cycle" by [biabduction](/docs/1.0.0/checker-biabduction). A retain cycle is a situation when object A retains object B, and object B retains object A at the same time. Here is an example: @@ -1728,27 +1728,27 @@ hierarchy: ## SHELL_INJECTION -Reported as "Shell Injection" by [quandary](/docs/checker-quandary). +Reported as "Shell Injection" by [quandary](/docs/1.0.0/checker-quandary). Environment variable or file data flowing to shell. ## SHELL_INJECTION_RISK -Reported as "Shell Injection Risk" by [quandary](/docs/checker-quandary). +Reported as "Shell Injection Risk" by [quandary](/docs/1.0.0/checker-quandary). Code injection if the caller of the endpoint doesn't sanitize on its end. ## SQL_INJECTION -Reported as "Sql Injection" by [quandary](/docs/checker-quandary). +Reported as "Sql Injection" by [quandary](/docs/1.0.0/checker-quandary). Untrusted and unescaped data flows to SQL. ## SQL_INJECTION_RISK -Reported as "Sql Injection Risk" by [quandary](/docs/checker-quandary). +Reported as "Sql Injection Risk" by [quandary](/docs/1.0.0/checker-quandary). Untrusted and unescaped data flows to SQL. ## STACK_VARIABLE_ADDRESS_ESCAPE -Reported as "Stack Variable Address Escape" by [pulse](/docs/checker-pulse). +Reported as "Stack Variable Address Escape" by [pulse](/docs/1.0.0/checker-pulse). Reported when an address pointing into the stack of the current function will escape to its calling context. Such addresses will @@ -1766,7 +1766,7 @@ int* foo() { ## STARVATION -Reported as "UI Thread Starvation" by [starvation](/docs/checker-starvation). +Reported as "UI Thread Starvation" by [starvation](/docs/1.0.0/checker-starvation). This error is reported in Java, and specifically on Android. These reports are triggered when a method that runs on the UI thread may block, thus potentially @@ -1826,7 +1826,7 @@ include the JAR files in `infer/annotations` for this annotation to work. ## STATIC_INITIALIZATION_ORDER_FIASCO -Reported as "Static Initialization Order Fiasco" by [siof](/docs/checker-siof). +Reported as "Static Initialization Order Fiasco" by [siof](/docs/1.0.0/checker-siof). This error is reported in C++. It fires when the initialization of a static variable `A`, accesses a static variable `B` from another translation unit @@ -1838,7 +1838,7 @@ For more technical definition and techniques to avoid/remediate, see the ## STRICT_MODE_VIOLATION -Reported as "Strict Mode Violation" by [starvation](/docs/checker-starvation). +Reported as "Strict Mode Violation" by [starvation](/docs/1.0.0/checker-starvation). Android has a feature called [strict mode](https://developer.android.com/reference/android/os/StrictMode), @@ -1852,7 +1852,7 @@ To suppress this warning, it's enough to annotate the offending method with ## STRONG_DELEGATE_WARNING -Reported as "Strong Delegate Warning" by [linters](/docs/checker-linters). +Reported as "Strong Delegate Warning" by [linters](/docs/1.0.0/checker-linters). This check warns you when you have a property called delegate or variations thereof which is declared strong. The idea is that delegates should generally be @@ -1860,7 +1860,7 @@ weak, otherwise this may cause retain cycles. ## STRONG_SELF_NOT_CHECKED -Reported as "StrongSelf Not Checked" by [self-in-block](/docs/checker-self-in-block). +Reported as "StrongSelf Not Checked" by [self-in-block](/docs/1.0.0/checker-self-in-block). When a block captures `weakSelf` in the following pattern: @@ -1877,11 +1877,11 @@ otherwise this could cause a crash because the weak pointer `weakSelf` could be ## THREAD_SAFETY_VIOLATION -Reported as "Thread Safety Violation" by [racerd](/docs/checker-racerd). +Reported as "Thread Safety Violation" by [racerd](/docs/1.0.0/checker-racerd). This warning indicates a potential data race in Java. The analyser is called RacerD and this section gives brief but a mostly complete description of its -features. See the [RacerD page](/docs/checker-racerd) for more in-depth information and +features. See the [RacerD page](/docs/1.0.0/checker-racerd) for more in-depth information and examples. ### Thread-safety: What is a data race @@ -1973,17 +1973,17 @@ These annotations can be found at `com.facebook.infer.annotation.*`. ## TOPL_BIABD_ERROR -Reported as "Topl Biabd Error" by [topl-biabd](/docs/checker-topl-biabd). +Reported as "Topl Biabd Error" by [topl-biabd](/docs/1.0.0/checker-topl-biabd). Experimental. ## TOPL_PULSE_ERROR -Reported as "Topl Pulse Error" by [topl-pulse](/docs/checker-topl-pulse). +Reported as "Topl Pulse Error" by [topl-pulse](/docs/1.0.0/checker-topl-pulse). Experimental. ## UNINITIALIZED_VALUE -Reported as "Uninitialized Value" by [uninit](/docs/checker-uninit). +Reported as "Uninitialized Value" by [uninit](/docs/1.0.0/checker-uninit). A value is read before it has been initialized. For example, in C: @@ -2007,79 +2007,79 @@ void foo() { ## UNREACHABLE_CODE -Reported as "Unreachable Code" by [bufferoverrun](/docs/checker-bufferoverrun). +Reported as "Unreachable Code" by [bufferoverrun](/docs/1.0.0/checker-bufferoverrun). A program point is unreachable. ## UNTRUSTED_BUFFER_ACCESS -Reported as "Untrusted Buffer Access" by [quandary](/docs/checker-quandary). +Reported as "Untrusted Buffer Access" by [quandary](/docs/1.0.0/checker-quandary). Untrusted data of any kind flowing to buffer. ## UNTRUSTED_DESERIALIZATION -Reported as "Untrusted Deserialization" by [quandary](/docs/checker-quandary). +Reported as "Untrusted Deserialization" by [quandary](/docs/1.0.0/checker-quandary). User-controlled deserialization. ## UNTRUSTED_DESERIALIZATION_RISK -Reported as "Untrusted Deserialization Risk" by [quandary](/docs/checker-quandary). +Reported as "Untrusted Deserialization Risk" by [quandary](/docs/1.0.0/checker-quandary). User-controlled deserialization ## UNTRUSTED_ENVIRONMENT_CHANGE_RISK -Reported as "Untrusted Environment Change Risk" by [quandary](/docs/checker-quandary). +Reported as "Untrusted Environment Change Risk" by [quandary](/docs/1.0.0/checker-quandary). User-controlled environment mutation. ## UNTRUSTED_FILE -Reported as "Untrusted File" by [quandary](/docs/checker-quandary). +Reported as "Untrusted File" by [quandary](/docs/1.0.0/checker-quandary). User-controlled file creation; may be vulnerable to path traversal and more. ## UNTRUSTED_FILE_RISK -Reported as "Untrusted File Risk" by [quandary](/docs/checker-quandary). +Reported as "Untrusted File Risk" by [quandary](/docs/1.0.0/checker-quandary). User-controlled file creation; may be vulnerable to path traversal and more. ## UNTRUSTED_HEAP_ALLOCATION -Reported as "Untrusted Heap Allocation" by [quandary](/docs/checker-quandary). +Reported as "Untrusted Heap Allocation" by [quandary](/docs/1.0.0/checker-quandary). Untrusted data of any kind flowing to heap allocation. this can cause crashes or DOS. ## UNTRUSTED_INTENT_CREATION -Reported as "Untrusted Intent Creation" by [quandary](/docs/checker-quandary). +Reported as "Untrusted Intent Creation" by [quandary](/docs/1.0.0/checker-quandary). Creating an Intent from user-controlled data. ## UNTRUSTED_URL_RISK -Reported as "Untrusted Url Risk" by [quandary](/docs/checker-quandary). +Reported as "Untrusted Url Risk" by [quandary](/docs/1.0.0/checker-quandary). Untrusted flag, environment variable, or file data flowing to URL. ## UNTRUSTED_VARIABLE_LENGTH_ARRAY -Reported as "Untrusted Variable Length Array" by [quandary](/docs/checker-quandary). +Reported as "Untrusted Variable Length Array" by [quandary](/docs/1.0.0/checker-quandary). Untrusted data of any kind flowing to stack buffer allocation. Trying to allocate a stack buffer that's too large will cause a stack overflow. ## USER_CONTROLLED_SQL_RISK -Reported as "User Controlled Sql Risk" by [quandary](/docs/checker-quandary). +Reported as "User Controlled Sql Risk" by [quandary](/docs/1.0.0/checker-quandary). Untrusted data flows to SQL (no injection risk). ## USE_AFTER_DELETE -Reported as "Use After Delete" by [pulse](/docs/checker-pulse). +Reported as "Use After Delete" by [pulse](/docs/1.0.0/checker-pulse). An address that was invalidated by a call to `delete` in C++ is dereferenced. ## USE_AFTER_FREE -Reported as "Use After Free" by [pulse](/docs/checker-pulse). +Reported as "Use After Free" by [pulse](/docs/1.0.0/checker-pulse). An address that was invalidated by a call to `free` in C is dereferenced. ## USE_AFTER_LIFETIME -Reported as "Use After Lifetime" by [pulse](/docs/checker-pulse). +Reported as "Use After Lifetime" by [pulse](/docs/1.0.0/checker-pulse). The lifetime of an object has ended but that object is being accessed. For example, the address of a variable holding a C++ object @@ -2098,7 +2098,7 @@ void foo() { ## VECTOR_INVALIDATION -Reported as "Vector Invalidation" by [pulse](/docs/checker-pulse). +Reported as "Vector Invalidation" by [pulse](/docs/1.0.0/checker-pulse). An address pointing into a C++ `std::vector` might have become invalid. This can happen when an address is taken into a vector, then @@ -2121,7 +2121,7 @@ void deref_vector_element_after_push_back_bad(std::vector& vec) { ## WEAK_SELF_IN_NO_ESCAPE_BLOCK -Reported as "Weak Self In No Escape Block" by [self-in-block](/docs/checker-self-in-block). +Reported as "Weak Self In No Escape Block" by [self-in-block](/docs/1.0.0/checker-self-in-block). In many methods that take a block as an argument, the block position is annotated with NS_NOESCAPE to mark that the block passed to this method won't be diff --git a/website/versioned_docs/version-1.0.0/checker-annotation-reachability.md b/website/versioned_docs/version-1.0.0/checker-annotation-reachability.md index 81f34b293..e0cf21758 100644 --- a/website/versioned_docs/version-1.0.0/checker-annotation-reachability.md +++ b/website/versioned_docs/version-1.0.0/checker-annotation-reachability.md @@ -16,7 +16,7 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [CHECKERS_ALLOCATES_MEMORY](/docs/all-issue-types#checkers_allocates_memory) -- [CHECKERS_ANNOTATION_REACHABILITY_ERROR](/docs/all-issue-types#checkers_annotation_reachability_error) -- [CHECKERS_CALLS_EXPENSIVE_METHOD](/docs/all-issue-types#checkers_calls_expensive_method) -- [CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED](/docs/all-issue-types#checkers_expensive_overrides_unannotated) +- [CHECKERS_ALLOCATES_MEMORY](/docs/1.0.0/all-issue-types#checkers_allocates_memory) +- [CHECKERS_ANNOTATION_REACHABILITY_ERROR](/docs/1.0.0/all-issue-types#checkers_annotation_reachability_error) +- [CHECKERS_CALLS_EXPENSIVE_METHOD](/docs/1.0.0/all-issue-types#checkers_calls_expensive_method) +- [CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED](/docs/1.0.0/all-issue-types#checkers_expensive_overrides_unannotated) diff --git a/website/versioned_docs/version-1.0.0/checker-biabduction.md b/website/versioned_docs/version-1.0.0/checker-biabduction.md index 71b8f57c9..191e10995 100644 --- a/website/versioned_docs/version-1.0.0/checker-biabduction.md +++ b/website/versioned_docs/version-1.0.0/checker-biabduction.md @@ -16,13 +16,13 @@ Read more about its foundations in the [Separation Logic and Biabduction page](s ## List of Issue Types The following issue types are reported by this checker: -- [BIABDUCTION_MEMORY_LEAK](/docs/all-issue-types#biabduction_memory_leak) -- [DANGLING_POINTER_DEREFERENCE](/docs/all-issue-types#dangling_pointer_dereference) -- [DIVIDE_BY_ZERO](/docs/all-issue-types#divide_by_zero) -- [EMPTY_VECTOR_ACCESS](/docs/all-issue-types#empty_vector_access) -- [IVAR_NOT_NULL_CHECKED](/docs/all-issue-types#ivar_not_null_checked) -- [NULL_DEREFERENCE](/docs/all-issue-types#null_dereference) -- [PARAMETER_NOT_NULL_CHECKED](/docs/all-issue-types#parameter_not_null_checked) -- [PREMATURE_NIL_TERMINATION_ARGUMENT](/docs/all-issue-types#premature_nil_termination_argument) -- [RESOURCE_LEAK](/docs/all-issue-types#resource_leak) -- [RETAIN_CYCLE](/docs/all-issue-types#retain_cycle) +- [BIABDUCTION_MEMORY_LEAK](/docs/1.0.0/all-issue-types#biabduction_memory_leak) +- [DANGLING_POINTER_DEREFERENCE](/docs/1.0.0/all-issue-types#dangling_pointer_dereference) +- [DIVIDE_BY_ZERO](/docs/1.0.0/all-issue-types#divide_by_zero) +- [EMPTY_VECTOR_ACCESS](/docs/1.0.0/all-issue-types#empty_vector_access) +- [IVAR_NOT_NULL_CHECKED](/docs/1.0.0/all-issue-types#ivar_not_null_checked) +- [NULL_DEREFERENCE](/docs/1.0.0/all-issue-types#null_dereference) +- [PARAMETER_NOT_NULL_CHECKED](/docs/1.0.0/all-issue-types#parameter_not_null_checked) +- [PREMATURE_NIL_TERMINATION_ARGUMENT](/docs/1.0.0/all-issue-types#premature_nil_termination_argument) +- [RESOURCE_LEAK](/docs/1.0.0/all-issue-types#resource_leak) +- [RETAIN_CYCLE](/docs/1.0.0/all-issue-types#retain_cycle) diff --git a/website/versioned_docs/version-1.0.0/checker-bufferoverrun.md b/website/versioned_docs/version-1.0.0/checker-bufferoverrun.md index 84fb93f43..5e092a672 100644 --- a/website/versioned_docs/version-1.0.0/checker-bufferoverrun.md +++ b/website/versioned_docs/version-1.0.0/checker-bufferoverrun.md @@ -16,22 +16,22 @@ You can read about its origins in this [blog post](https://research.fb.com/infer ## List of Issue Types The following issue types are reported by this checker: -- [BUFFER_OVERRUN_L1](/docs/all-issue-types#buffer_overrun_l1) -- [BUFFER_OVERRUN_L2](/docs/all-issue-types#buffer_overrun_l2) -- [BUFFER_OVERRUN_L3](/docs/all-issue-types#buffer_overrun_l3) -- [BUFFER_OVERRUN_L4](/docs/all-issue-types#buffer_overrun_l4) -- [BUFFER_OVERRUN_L5](/docs/all-issue-types#buffer_overrun_l5) -- [BUFFER_OVERRUN_S2](/docs/all-issue-types#buffer_overrun_s2) -- [BUFFER_OVERRUN_U5](/docs/all-issue-types#buffer_overrun_u5) -- [CONDITION_ALWAYS_FALSE](/docs/all-issue-types#condition_always_false) -- [CONDITION_ALWAYS_TRUE](/docs/all-issue-types#condition_always_true) -- [INFERBO_ALLOC_IS_BIG](/docs/all-issue-types#inferbo_alloc_is_big) -- [INFERBO_ALLOC_IS_NEGATIVE](/docs/all-issue-types#inferbo_alloc_is_negative) -- [INFERBO_ALLOC_IS_ZERO](/docs/all-issue-types#inferbo_alloc_is_zero) -- [INFERBO_ALLOC_MAY_BE_BIG](/docs/all-issue-types#inferbo_alloc_may_be_big) -- [INFERBO_ALLOC_MAY_BE_NEGATIVE](/docs/all-issue-types#inferbo_alloc_may_be_negative) -- [INTEGER_OVERFLOW_L1](/docs/all-issue-types#integer_overflow_l1) -- [INTEGER_OVERFLOW_L2](/docs/all-issue-types#integer_overflow_l2) -- [INTEGER_OVERFLOW_L5](/docs/all-issue-types#integer_overflow_l5) -- [INTEGER_OVERFLOW_U5](/docs/all-issue-types#integer_overflow_u5) -- [UNREACHABLE_CODE](/docs/all-issue-types#unreachable_code) +- [BUFFER_OVERRUN_L1](/docs/1.0.0/all-issue-types#buffer_overrun_l1) +- [BUFFER_OVERRUN_L2](/docs/1.0.0/all-issue-types#buffer_overrun_l2) +- [BUFFER_OVERRUN_L3](/docs/1.0.0/all-issue-types#buffer_overrun_l3) +- [BUFFER_OVERRUN_L4](/docs/1.0.0/all-issue-types#buffer_overrun_l4) +- [BUFFER_OVERRUN_L5](/docs/1.0.0/all-issue-types#buffer_overrun_l5) +- [BUFFER_OVERRUN_S2](/docs/1.0.0/all-issue-types#buffer_overrun_s2) +- [BUFFER_OVERRUN_U5](/docs/1.0.0/all-issue-types#buffer_overrun_u5) +- [CONDITION_ALWAYS_FALSE](/docs/1.0.0/all-issue-types#condition_always_false) +- [CONDITION_ALWAYS_TRUE](/docs/1.0.0/all-issue-types#condition_always_true) +- [INFERBO_ALLOC_IS_BIG](/docs/1.0.0/all-issue-types#inferbo_alloc_is_big) +- [INFERBO_ALLOC_IS_NEGATIVE](/docs/1.0.0/all-issue-types#inferbo_alloc_is_negative) +- [INFERBO_ALLOC_IS_ZERO](/docs/1.0.0/all-issue-types#inferbo_alloc_is_zero) +- [INFERBO_ALLOC_MAY_BE_BIG](/docs/1.0.0/all-issue-types#inferbo_alloc_may_be_big) +- [INFERBO_ALLOC_MAY_BE_NEGATIVE](/docs/1.0.0/all-issue-types#inferbo_alloc_may_be_negative) +- [INTEGER_OVERFLOW_L1](/docs/1.0.0/all-issue-types#integer_overflow_l1) +- [INTEGER_OVERFLOW_L2](/docs/1.0.0/all-issue-types#integer_overflow_l2) +- [INTEGER_OVERFLOW_L5](/docs/1.0.0/all-issue-types#integer_overflow_l5) +- [INTEGER_OVERFLOW_U5](/docs/1.0.0/all-issue-types#integer_overflow_u5) +- [UNREACHABLE_CODE](/docs/1.0.0/all-issue-types#unreachable_code) diff --git a/website/versioned_docs/version-1.0.0/checker-config-checks-between-markers.md b/website/versioned_docs/version-1.0.0/checker-config-checks-between-markers.md index 5e5258e4b..c62331335 100644 --- a/website/versioned_docs/version-1.0.0/checker-config-checks-between-markers.md +++ b/website/versioned_docs/version-1.0.0/checker-config-checks-between-markers.md @@ -16,4 +16,4 @@ This checker is currently only useful for certain Facebook code. ## List of Issue Types The following issue types are reported by this checker: -- [CONFIG_CHECKS_BETWEEN_MARKERS](/docs/all-issue-types#config_checks_between_markers) +- [CONFIG_CHECKS_BETWEEN_MARKERS](/docs/1.0.0/all-issue-types#config_checks_between_markers) diff --git a/website/versioned_docs/version-1.0.0/checker-cost.md b/website/versioned_docs/version-1.0.0/checker-cost.md index 8881dea1c..9d2f8dfd8 100644 --- a/website/versioned_docs/version-1.0.0/checker-cost.md +++ b/website/versioned_docs/version-1.0.0/checker-cost.md @@ -34,7 +34,7 @@ The total cost of the node is the scalar product of these two vectors. Then, the At a high level, the analysis has three steps: - Choose control variables that allude to "how many times a loop may iterate". -- Get abstract ranges of the control variables from [InferBO](/docs/checker-bufferoverrun) (a numerical analysis that infers symbolic intervals) +- Get abstract ranges of the control variables from [InferBO](/docs/1.0.0/checker-bufferoverrun) (a numerical analysis that infers symbolic intervals) - Construct complexity polynomials for loops and functions by via a constraint solving algorithm. @@ -62,7 +62,7 @@ void loop(ArrayList list){ } ``` -where `foo` has a linear cost in its parameter, then Infer automatically detects that the complexity of loop has increased from `O(|list|)` to `O(|list|^2)` and then reports an [`EXECUTION_TIME_COMPLEXITY_INCREASE`](/docs/all-issue-types#execution_time_complexity_increase) issue. +where `foo` has a linear cost in its parameter, then Infer automatically detects that the complexity of loop has increased from `O(|list|)` to `O(|list|^2)` and then reports an [`EXECUTION_TIME_COMPLEXITY_INCREASE`](/docs/1.0.0/all-issue-types#execution_time_complexity_increase) issue. @@ -90,11 +90,11 @@ There are a number of known limitations to the design of the static cost analysi ## List of Issue Types The following issue types are reported by this checker: -- [AUTORELEASEPOOL_SIZE_COMPLEXITY_INCREASE](/docs/all-issue-types#autoreleasepool_size_complexity_increase) -- [AUTORELEASEPOOL_SIZE_COMPLEXITY_INCREASE_UI_THREAD](/docs/all-issue-types#autoreleasepool_size_complexity_increase_ui_thread) -- [AUTORELEASEPOOL_SIZE_UNREACHABLE_AT_EXIT](/docs/all-issue-types#autoreleasepool_size_unreachable_at_exit) -- [EXECUTION_TIME_COMPLEXITY_INCREASE](/docs/all-issue-types#execution_time_complexity_increase) -- [EXECUTION_TIME_COMPLEXITY_INCREASE_UI_THREAD](/docs/all-issue-types#execution_time_complexity_increase_ui_thread) -- [EXECUTION_TIME_UNREACHABLE_AT_EXIT](/docs/all-issue-types#execution_time_unreachable_at_exit) -- [INFINITE_AUTORELEASEPOOL_SIZE](/docs/all-issue-types#infinite_autoreleasepool_size) -- [INFINITE_EXECUTION_TIME](/docs/all-issue-types#infinite_execution_time) +- [AUTORELEASEPOOL_SIZE_COMPLEXITY_INCREASE](/docs/1.0.0/all-issue-types#autoreleasepool_size_complexity_increase) +- [AUTORELEASEPOOL_SIZE_COMPLEXITY_INCREASE_UI_THREAD](/docs/1.0.0/all-issue-types#autoreleasepool_size_complexity_increase_ui_thread) +- [AUTORELEASEPOOL_SIZE_UNREACHABLE_AT_EXIT](/docs/1.0.0/all-issue-types#autoreleasepool_size_unreachable_at_exit) +- [EXECUTION_TIME_COMPLEXITY_INCREASE](/docs/1.0.0/all-issue-types#execution_time_complexity_increase) +- [EXECUTION_TIME_COMPLEXITY_INCREASE_UI_THREAD](/docs/1.0.0/all-issue-types#execution_time_complexity_increase_ui_thread) +- [EXECUTION_TIME_UNREACHABLE_AT_EXIT](/docs/1.0.0/all-issue-types#execution_time_unreachable_at_exit) +- [INFINITE_AUTORELEASEPOOL_SIZE](/docs/1.0.0/all-issue-types#infinite_autoreleasepool_size) +- [INFINITE_EXECUTION_TIME](/docs/1.0.0/all-issue-types#infinite_execution_time) diff --git a/website/versioned_docs/version-1.0.0/checker-eradicate.md b/website/versioned_docs/version-1.0.0/checker-eradicate.md index c5b02452c..7764c92fe 100644 --- a/website/versioned_docs/version-1.0.0/checker-eradicate.md +++ b/website/versioned_docs/version-1.0.0/checker-eradicate.md @@ -91,20 +91,20 @@ class C { ## List of Issue Types The following issue types are reported by this checker: -- [ERADICATE_BAD_NESTED_CLASS_ANNOTATION](/docs/all-issue-types#eradicate_bad_nested_class_annotation) -- [ERADICATE_CONDITION_REDUNDANT](/docs/all-issue-types#eradicate_condition_redundant) -- [ERADICATE_FIELD_NOT_INITIALIZED](/docs/all-issue-types#eradicate_field_not_initialized) -- [ERADICATE_FIELD_NOT_NULLABLE](/docs/all-issue-types#eradicate_field_not_nullable) -- [ERADICATE_FIELD_OVER_ANNOTATED](/docs/all-issue-types#eradicate_field_over_annotated) -- [ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION](/docs/all-issue-types#eradicate_inconsistent_subclass_parameter_annotation) -- [ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION](/docs/all-issue-types#eradicate_inconsistent_subclass_return_annotation) -- [ERADICATE_META_CLASS_CAN_BE_NULLSAFE](/docs/all-issue-types#eradicate_meta_class_can_be_nullsafe) -- [ERADICATE_META_CLASS_IS_NULLSAFE](/docs/all-issue-types#eradicate_meta_class_is_nullsafe) -- [ERADICATE_META_CLASS_NEEDS_IMPROVEMENT](/docs/all-issue-types#eradicate_meta_class_needs_improvement) -- [ERADICATE_NULLABLE_DEREFERENCE](/docs/all-issue-types#eradicate_nullable_dereference) -- [ERADICATE_PARAMETER_NOT_NULLABLE](/docs/all-issue-types#eradicate_parameter_not_nullable) -- [ERADICATE_REDUNDANT_NESTED_CLASS_ANNOTATION](/docs/all-issue-types#eradicate_redundant_nested_class_annotation) -- [ERADICATE_RETURN_NOT_NULLABLE](/docs/all-issue-types#eradicate_return_not_nullable) -- [ERADICATE_RETURN_OVER_ANNOTATED](/docs/all-issue-types#eradicate_return_over_annotated) -- [ERADICATE_UNCHECKED_USAGE_IN_NULLSAFE](/docs/all-issue-types#eradicate_unchecked_usage_in_nullsafe) -- [ERADICATE_UNVETTED_THIRD_PARTY_IN_NULLSAFE](/docs/all-issue-types#eradicate_unvetted_third_party_in_nullsafe) +- [ERADICATE_BAD_NESTED_CLASS_ANNOTATION](/docs/1.0.0/all-issue-types#eradicate_bad_nested_class_annotation) +- [ERADICATE_CONDITION_REDUNDANT](/docs/1.0.0/all-issue-types#eradicate_condition_redundant) +- [ERADICATE_FIELD_NOT_INITIALIZED](/docs/1.0.0/all-issue-types#eradicate_field_not_initialized) +- [ERADICATE_FIELD_NOT_NULLABLE](/docs/1.0.0/all-issue-types#eradicate_field_not_nullable) +- [ERADICATE_FIELD_OVER_ANNOTATED](/docs/1.0.0/all-issue-types#eradicate_field_over_annotated) +- [ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION](/docs/1.0.0/all-issue-types#eradicate_inconsistent_subclass_parameter_annotation) +- [ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION](/docs/1.0.0/all-issue-types#eradicate_inconsistent_subclass_return_annotation) +- [ERADICATE_META_CLASS_CAN_BE_NULLSAFE](/docs/1.0.0/all-issue-types#eradicate_meta_class_can_be_nullsafe) +- [ERADICATE_META_CLASS_IS_NULLSAFE](/docs/1.0.0/all-issue-types#eradicate_meta_class_is_nullsafe) +- [ERADICATE_META_CLASS_NEEDS_IMPROVEMENT](/docs/1.0.0/all-issue-types#eradicate_meta_class_needs_improvement) +- [ERADICATE_NULLABLE_DEREFERENCE](/docs/1.0.0/all-issue-types#eradicate_nullable_dereference) +- [ERADICATE_PARAMETER_NOT_NULLABLE](/docs/1.0.0/all-issue-types#eradicate_parameter_not_nullable) +- [ERADICATE_REDUNDANT_NESTED_CLASS_ANNOTATION](/docs/1.0.0/all-issue-types#eradicate_redundant_nested_class_annotation) +- [ERADICATE_RETURN_NOT_NULLABLE](/docs/1.0.0/all-issue-types#eradicate_return_not_nullable) +- [ERADICATE_RETURN_OVER_ANNOTATED](/docs/1.0.0/all-issue-types#eradicate_return_over_annotated) +- [ERADICATE_UNCHECKED_USAGE_IN_NULLSAFE](/docs/1.0.0/all-issue-types#eradicate_unchecked_usage_in_nullsafe) +- [ERADICATE_UNVETTED_THIRD_PARTY_IN_NULLSAFE](/docs/1.0.0/all-issue-types#eradicate_unvetted_third_party_in_nullsafe) diff --git a/website/versioned_docs/version-1.0.0/checker-fragment-retains-view.md b/website/versioned_docs/version-1.0.0/checker-fragment-retains-view.md index 352a8a9d4..66bcf168d 100644 --- a/website/versioned_docs/version-1.0.0/checker-fragment-retains-view.md +++ b/website/versioned_docs/version-1.0.0/checker-fragment-retains-view.md @@ -18,4 +18,4 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [CHECKERS_FRAGMENT_RETAINS_VIEW](/docs/all-issue-types#checkers_fragment_retains_view) +- [CHECKERS_FRAGMENT_RETAINS_VIEW](/docs/1.0.0/all-issue-types#checkers_fragment_retains_view) diff --git a/website/versioned_docs/version-1.0.0/checker-immutable-cast.md b/website/versioned_docs/version-1.0.0/checker-immutable-cast.md index e298be885..65b814875 100644 --- a/website/versioned_docs/version-1.0.0/checker-immutable-cast.md +++ b/website/versioned_docs/version-1.0.0/checker-immutable-cast.md @@ -18,4 +18,4 @@ Casts flagged by this checker are unsafe because calling mutation operations on ## List of Issue Types The following issue types are reported by this checker: -- [CHECKERS_IMMUTABLE_CAST](/docs/all-issue-types#checkers_immutable_cast) +- [CHECKERS_IMMUTABLE_CAST](/docs/1.0.0/all-issue-types#checkers_immutable_cast) diff --git a/website/versioned_docs/version-1.0.0/checker-impurity.md b/website/versioned_docs/version-1.0.0/checker-impurity.md index aa8f2501b..c45f2ce20 100644 --- a/website/versioned_docs/version-1.0.0/checker-impurity.md +++ b/website/versioned_docs/version-1.0.0/checker-impurity.md @@ -11,10 +11,10 @@ Supported languages: - C/C++/ObjC: Experimental - Java: Experimental -This is an experimental inter-procedural analysis that detects impure functions. It is meant to be an improvement over the [purity](/docs/checker-purity) analysis with a negation on the issue types. For each function, impurity analysis keeps track of not only the impurity of the function but also some additional information such as which parameters/globals the function modifies. It models functions with no summary/model as impure. The analysis relies on [Pulse](/docs/checker-pulse) summaries to determine impurity. +This is an experimental inter-procedural analysis that detects impure functions. It is meant to be an improvement over the [purity](/docs/1.0.0/checker-purity) analysis with a negation on the issue types. For each function, impurity analysis keeps track of not only the impurity of the function but also some additional information such as which parameters/globals the function modifies. It models functions with no summary/model as impure. The analysis relies on [Pulse](/docs/1.0.0/checker-pulse) summaries to determine impurity. ## List of Issue Types The following issue types are reported by this checker: -- [IMPURE_FUNCTION](/docs/all-issue-types#impure_function) +- [IMPURE_FUNCTION](/docs/1.0.0/all-issue-types#impure_function) diff --git a/website/versioned_docs/version-1.0.0/checker-inefficient-keyset-iterator.md b/website/versioned_docs/version-1.0.0/checker-inefficient-keyset-iterator.md index fee88afdb..a166e4e23 100644 --- a/website/versioned_docs/version-1.0.0/checker-inefficient-keyset-iterator.md +++ b/website/versioned_docs/version-1.0.0/checker-inefficient-keyset-iterator.md @@ -16,4 +16,4 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [INEFFICIENT_KEYSET_ITERATOR](/docs/all-issue-types#inefficient_keyset_iterator) +- [INEFFICIENT_KEYSET_ITERATOR](/docs/1.0.0/all-issue-types#inefficient_keyset_iterator) diff --git a/website/versioned_docs/version-1.0.0/checker-linters.md b/website/versioned_docs/version-1.0.0/checker-linters.md index 98646a5a3..6f54e6b33 100644 --- a/website/versioned_docs/version-1.0.0/checker-linters.md +++ b/website/versioned_docs/version-1.0.0/checker-linters.md @@ -701,19 +701,19 @@ infer run --linters -- clang -c Test.m ``` There are a few other command-line options that are useful for using or -developing new linters in Infer. Read about them in the [`infer capture` manual](/docs/man-infer-capture). +developing new linters in Infer. Read about them in the [`infer capture` manual](/docs/1.0.0/man-infer-capture). ## List of Issue Types The following issue types are reported by this checker: -- [ASSIGN_POINTER_WARNING](/docs/all-issue-types#assign_pointer_warning) -- [BAD_POINTER_COMPARISON](/docs/all-issue-types#bad_pointer_comparison) -- [COMPONENT_WITH_MULTIPLE_FACTORY_METHODS](/docs/all-issue-types#component_with_multiple_factory_methods) -- [CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK](/docs/all-issue-types#cxx_reference_captured_in_objc_block) -- [DIRECT_ATOMIC_PROPERTY_ACCESS](/docs/all-issue-types#direct_atomic_property_access) -- [DISCOURAGED_WEAK_PROPERTY_CUSTOM_SETTER](/docs/all-issue-types#discouraged_weak_property_custom_setter) -- [GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL](/docs/all-issue-types#global_variable_initialized_with_function_or_method_call) -- [MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE](/docs/all-issue-types#mutable_local_variable_in_component_file) -- [POINTER_TO_CONST_OBJC_CLASS](/docs/all-issue-types#pointer_to_const_objc_class) -- [STRONG_DELEGATE_WARNING](/docs/all-issue-types#strong_delegate_warning) +- [ASSIGN_POINTER_WARNING](/docs/1.0.0/all-issue-types#assign_pointer_warning) +- [BAD_POINTER_COMPARISON](/docs/1.0.0/all-issue-types#bad_pointer_comparison) +- [COMPONENT_WITH_MULTIPLE_FACTORY_METHODS](/docs/1.0.0/all-issue-types#component_with_multiple_factory_methods) +- [CXX_REFERENCE_CAPTURED_IN_OBJC_BLOCK](/docs/1.0.0/all-issue-types#cxx_reference_captured_in_objc_block) +- [DIRECT_ATOMIC_PROPERTY_ACCESS](/docs/1.0.0/all-issue-types#direct_atomic_property_access) +- [DISCOURAGED_WEAK_PROPERTY_CUSTOM_SETTER](/docs/1.0.0/all-issue-types#discouraged_weak_property_custom_setter) +- [GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL](/docs/1.0.0/all-issue-types#global_variable_initialized_with_function_or_method_call) +- [MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE](/docs/1.0.0/all-issue-types#mutable_local_variable_in_component_file) +- [POINTER_TO_CONST_OBJC_CLASS](/docs/1.0.0/all-issue-types#pointer_to_const_objc_class) +- [STRONG_DELEGATE_WARNING](/docs/1.0.0/all-issue-types#strong_delegate_warning) diff --git a/website/versioned_docs/version-1.0.0/checker-litho-required-props.md b/website/versioned_docs/version-1.0.0/checker-litho-required-props.md index 717945774..d6bcccaec 100644 --- a/website/versioned_docs/version-1.0.0/checker-litho-required-props.md +++ b/website/versioned_docs/version-1.0.0/checker-litho-required-props.md @@ -45,7 +45,7 @@ If the required props are not called, then annotation processor throws an except ## Examples -E.g. the following is caught as [MISSING_REQUIRED_PROP](/docs/all-issue-types#missing_required_prop) `prop2`. +E.g. the following is caught as [MISSING_REQUIRED_PROP](/docs/1.0.0/all-issue-types#missing_required_prop) `prop2`. ```java MyComponent.create(c) @@ -67,4 +67,4 @@ Note that, the functions `create()` and `build()` could be defined in different ## List of Issue Types The following issue types are reported by this checker: -- [MISSING_REQUIRED_PROP](/docs/all-issue-types#missing_required_prop) +- [MISSING_REQUIRED_PROP](/docs/1.0.0/all-issue-types#missing_required_prop) diff --git a/website/versioned_docs/version-1.0.0/checker-liveness.md b/website/versioned_docs/version-1.0.0/checker-liveness.md index b66d6a99b..f3d7b1435 100644 --- a/website/versioned_docs/version-1.0.0/checker-liveness.md +++ b/website/versioned_docs/version-1.0.0/checker-liveness.md @@ -16,4 +16,4 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [DEAD_STORE](/docs/all-issue-types#dead_store) +- [DEAD_STORE](/docs/1.0.0/all-issue-types#dead_store) diff --git a/website/versioned_docs/version-1.0.0/checker-loop-hoisting.md b/website/versioned_docs/version-1.0.0/checker-loop-hoisting.md index 7614d22d8..faeb4889f 100644 --- a/website/versioned_docs/version-1.0.0/checker-loop-hoisting.md +++ b/website/versioned_docs/version-1.0.0/checker-loop-hoisting.md @@ -11,13 +11,13 @@ Supported languages: - C/C++/ObjC: Yes - Java: Yes -This checker detects opportunities to hoist function calls that are invariant to outside of loop bodies. The hoisting analysis relies on [purity](/docs/checker-purity) analysis to determine whather a function is pure or not. +This checker detects opportunities to hoist function calls that are invariant to outside of loop bodies. The hoisting analysis relies on [purity](/docs/1.0.0/checker-purity) analysis to determine whather a function is pure or not. -It has an additional mode that reports [loop-invariant functions that are expensive](/docs/all-issue-types#expensive_loop_invariant_call) (i.e. at least linear). This is enabled by the flag `--hoisting-report-only-expensive`. +It has an additional mode that reports [loop-invariant functions that are expensive](/docs/1.0.0/all-issue-types#expensive_loop_invariant_call) (i.e. at least linear). This is enabled by the flag `--hoisting-report-only-expensive`. ## List of Issue Types The following issue types are reported by this checker: -- [EXPENSIVE_LOOP_INVARIANT_CALL](/docs/all-issue-types#expensive_loop_invariant_call) -- [INVARIANT_CALL](/docs/all-issue-types#invariant_call) +- [EXPENSIVE_LOOP_INVARIANT_CALL](/docs/1.0.0/all-issue-types#expensive_loop_invariant_call) +- [INVARIANT_CALL](/docs/1.0.0/all-issue-types#invariant_call) diff --git a/website/versioned_docs/version-1.0.0/checker-printf-args.md b/website/versioned_docs/version-1.0.0/checker-printf-args.md index 772030fe1..916be9167 100644 --- a/website/versioned_docs/version-1.0.0/checker-printf-args.md +++ b/website/versioned_docs/version-1.0.0/checker-printf-args.md @@ -18,4 +18,4 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [CHECKERS_PRINTF_ARGS](/docs/all-issue-types#checkers_printf_args) +- [CHECKERS_PRINTF_ARGS](/docs/1.0.0/all-issue-types#checkers_printf_args) diff --git a/website/versioned_docs/version-1.0.0/checker-pulse.md b/website/versioned_docs/version-1.0.0/checker-pulse.md index a6ddf4e88..f60f7692b 100644 --- a/website/versioned_docs/version-1.0.0/checker-pulse.md +++ b/website/versioned_docs/version-1.0.0/checker-pulse.md @@ -16,12 +16,12 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [CONSTANT_ADDRESS_DEREFERENCE](/docs/all-issue-types#constant_address_dereference) -- [MEMORY_LEAK](/docs/all-issue-types#memory_leak) -- [NULLPTR_DEREFERENCE](/docs/all-issue-types#nullptr_dereference) -- [OPTIONAL_EMPTY_ACCESS](/docs/all-issue-types#optional_empty_access) -- [STACK_VARIABLE_ADDRESS_ESCAPE](/docs/all-issue-types#stack_variable_address_escape) -- [USE_AFTER_DELETE](/docs/all-issue-types#use_after_delete) -- [USE_AFTER_FREE](/docs/all-issue-types#use_after_free) -- [USE_AFTER_LIFETIME](/docs/all-issue-types#use_after_lifetime) -- [VECTOR_INVALIDATION](/docs/all-issue-types#vector_invalidation) +- [CONSTANT_ADDRESS_DEREFERENCE](/docs/1.0.0/all-issue-types#constant_address_dereference) +- [MEMORY_LEAK](/docs/1.0.0/all-issue-types#memory_leak) +- [NULLPTR_DEREFERENCE](/docs/1.0.0/all-issue-types#nullptr_dereference) +- [OPTIONAL_EMPTY_ACCESS](/docs/1.0.0/all-issue-types#optional_empty_access) +- [STACK_VARIABLE_ADDRESS_ESCAPE](/docs/1.0.0/all-issue-types#stack_variable_address_escape) +- [USE_AFTER_DELETE](/docs/1.0.0/all-issue-types#use_after_delete) +- [USE_AFTER_FREE](/docs/1.0.0/all-issue-types#use_after_free) +- [USE_AFTER_LIFETIME](/docs/1.0.0/all-issue-types#use_after_lifetime) +- [VECTOR_INVALIDATION](/docs/1.0.0/all-issue-types#vector_invalidation) diff --git a/website/versioned_docs/version-1.0.0/checker-purity.md b/website/versioned_docs/version-1.0.0/checker-purity.md index b9132cea5..72efdd772 100644 --- a/website/versioned_docs/version-1.0.0/checker-purity.md +++ b/website/versioned_docs/version-1.0.0/checker-purity.md @@ -13,7 +13,7 @@ Supported languages: This is an experimental inter-procedural analysis that detects pure (side-effect free) functions. For each function, purity analysis keeps track of not only the purity of the function but also some additional information such as whether the function modifies a global variable or which of the parameters are modified. It models functions with no summary/model as modifying the global state (hence impure). -If the function is pure (i.e. doesn't modify any global state or its parameters and doesn't call any unknown functions), then it reports an [`PURE_FUNCTION`](/docs/all-issue-types#pure_function) issue. +If the function is pure (i.e. doesn't modify any global state or its parameters and doesn't call any unknown functions), then it reports an [`PURE_FUNCTION`](/docs/1.0.0/all-issue-types#pure_function) issue. ## Weaknesses @@ -31,7 +31,7 @@ void foo(Foo a){ } ``` -in order to determine that `foo` is impure, we need to know that the write to `b`'s field is actually changing the function parameter `a`, i.e. we need to check if `b` is aliasing `a`. This is known as alias analysis and is hard to get right in a scalable manner. When this analysis was being developed, Infer didn't have a unified alias analysis and using biabduction seemed like a too daunting task at the time. Hence, we relied on [InferBo](/docs/checker-bufferoverrun)'s aliasing mechanism which was easy to invoke and integrate with. However, InferBo's aliasing analysis is far from perfect and causes issues for purity. +in order to determine that `foo` is impure, we need to know that the write to `b`'s field is actually changing the function parameter `a`, i.e. we need to check if `b` is aliasing `a`. This is known as alias analysis and is hard to get right in a scalable manner. When this analysis was being developed, Infer didn't have a unified alias analysis and using biabduction seemed like a too daunting task at the time. Hence, we relied on [InferBo](/docs/1.0.0/checker-bufferoverrun)'s aliasing mechanism which was easy to invoke and integrate with. However, InferBo's aliasing analysis is far from perfect and causes issues for purity. To see the issue with the second point, consider the following program: ```java @@ -50,16 +50,16 @@ boolean contains(Integer i, ArrayList list){ The existing purity analysis concludes that the above function `contains` is impure because it calls an impure function `next()` which modifies the iterator (hence it thinks it also modifies the `list`). However, notice that `contains` doesn't have an observable side-effect: `list.iterator()` returns a new object, `hasNext()` and `equals()` are pure, and `next()` only modifies the fields of the fresh object `listIterator`. Therefore, `contains` should be considered as pure. -To alleviate this problem, we have developed an [Impurity](/docs/checker-impurity) analysis which uses [pulse](/docs/checker-pulse) which can successfully analyze this program as pure \o/ +To alleviate this problem, we have developed an [Impurity](/docs/1.0.0/checker-impurity) analysis which uses [pulse](/docs/1.0.0/checker-pulse) which can successfully analyze this program as pure \o/ The analysis is used by: -- [Loop-hoisting](/docs/checker-loop-hoisting) analysis which identifies loop-invariant function calls, i.e. functions that are pure and have loop-invariant arguments. -- [Cost](/docs/checker-cost) analysis which identifies control variables in the loop that affect how many times a loop is executed. In this computation, we need to prune control variables that do not affect how many times a loop is executed. In this pruning step, we need to compute loop-invariant variables (which requires the above analysis). +- [Loop-hoisting](/docs/1.0.0/checker-loop-hoisting) analysis which identifies loop-invariant function calls, i.e. functions that are pure and have loop-invariant arguments. +- [Cost](/docs/1.0.0/checker-cost) analysis which identifies control variables in the loop that affect how many times a loop is executed. In this computation, we need to prune control variables that do not affect how many times a loop is executed. In this pruning step, we need to compute loop-invariant variables (which requires the above analysis). ## List of Issue Types The following issue types are reported by this checker: -- [PURE_FUNCTION](/docs/all-issue-types#pure_function) +- [PURE_FUNCTION](/docs/1.0.0/all-issue-types#pure_function) diff --git a/website/versioned_docs/version-1.0.0/checker-quandary.md b/website/versioned_docs/version-1.0.0/checker-quandary.md index 731db21d9..56b91a3f3 100644 --- a/website/versioned_docs/version-1.0.0/checker-quandary.md +++ b/website/versioned_docs/version-1.0.0/checker-quandary.md @@ -24,25 +24,25 @@ example ## List of Issue Types The following issue types are reported by this checker: -- [CREATE_INTENT_FROM_URI](/docs/all-issue-types#create_intent_from_uri) -- [CROSS_SITE_SCRIPTING](/docs/all-issue-types#cross_site_scripting) -- [EXPOSED_INSECURE_INTENT_HANDLING](/docs/all-issue-types#exposed_insecure_intent_handling) -- [INSECURE_INTENT_HANDLING](/docs/all-issue-types#insecure_intent_handling) -- [JAVASCRIPT_INJECTION](/docs/all-issue-types#javascript_injection) -- [LOGGING_PRIVATE_DATA](/docs/all-issue-types#logging_private_data) -- [QUANDARY_TAINT_ERROR](/docs/all-issue-types#quandary_taint_error) -- [SHELL_INJECTION](/docs/all-issue-types#shell_injection) -- [SHELL_INJECTION_RISK](/docs/all-issue-types#shell_injection_risk) -- [SQL_INJECTION](/docs/all-issue-types#sql_injection) -- [SQL_INJECTION_RISK](/docs/all-issue-types#sql_injection_risk) -- [UNTRUSTED_BUFFER_ACCESS](/docs/all-issue-types#untrusted_buffer_access) -- [UNTRUSTED_DESERIALIZATION](/docs/all-issue-types#untrusted_deserialization) -- [UNTRUSTED_DESERIALIZATION_RISK](/docs/all-issue-types#untrusted_deserialization_risk) -- [UNTRUSTED_ENVIRONMENT_CHANGE_RISK](/docs/all-issue-types#untrusted_environment_change_risk) -- [UNTRUSTED_FILE](/docs/all-issue-types#untrusted_file) -- [UNTRUSTED_FILE_RISK](/docs/all-issue-types#untrusted_file_risk) -- [UNTRUSTED_HEAP_ALLOCATION](/docs/all-issue-types#untrusted_heap_allocation) -- [UNTRUSTED_INTENT_CREATION](/docs/all-issue-types#untrusted_intent_creation) -- [UNTRUSTED_URL_RISK](/docs/all-issue-types#untrusted_url_risk) -- [UNTRUSTED_VARIABLE_LENGTH_ARRAY](/docs/all-issue-types#untrusted_variable_length_array) -- [USER_CONTROLLED_SQL_RISK](/docs/all-issue-types#user_controlled_sql_risk) +- [CREATE_INTENT_FROM_URI](/docs/1.0.0/all-issue-types#create_intent_from_uri) +- [CROSS_SITE_SCRIPTING](/docs/1.0.0/all-issue-types#cross_site_scripting) +- [EXPOSED_INSECURE_INTENT_HANDLING](/docs/1.0.0/all-issue-types#exposed_insecure_intent_handling) +- [INSECURE_INTENT_HANDLING](/docs/1.0.0/all-issue-types#insecure_intent_handling) +- [JAVASCRIPT_INJECTION](/docs/1.0.0/all-issue-types#javascript_injection) +- [LOGGING_PRIVATE_DATA](/docs/1.0.0/all-issue-types#logging_private_data) +- [QUANDARY_TAINT_ERROR](/docs/1.0.0/all-issue-types#quandary_taint_error) +- [SHELL_INJECTION](/docs/1.0.0/all-issue-types#shell_injection) +- [SHELL_INJECTION_RISK](/docs/1.0.0/all-issue-types#shell_injection_risk) +- [SQL_INJECTION](/docs/1.0.0/all-issue-types#sql_injection) +- [SQL_INJECTION_RISK](/docs/1.0.0/all-issue-types#sql_injection_risk) +- [UNTRUSTED_BUFFER_ACCESS](/docs/1.0.0/all-issue-types#untrusted_buffer_access) +- [UNTRUSTED_DESERIALIZATION](/docs/1.0.0/all-issue-types#untrusted_deserialization) +- [UNTRUSTED_DESERIALIZATION_RISK](/docs/1.0.0/all-issue-types#untrusted_deserialization_risk) +- [UNTRUSTED_ENVIRONMENT_CHANGE_RISK](/docs/1.0.0/all-issue-types#untrusted_environment_change_risk) +- [UNTRUSTED_FILE](/docs/1.0.0/all-issue-types#untrusted_file) +- [UNTRUSTED_FILE_RISK](/docs/1.0.0/all-issue-types#untrusted_file_risk) +- [UNTRUSTED_HEAP_ALLOCATION](/docs/1.0.0/all-issue-types#untrusted_heap_allocation) +- [UNTRUSTED_INTENT_CREATION](/docs/1.0.0/all-issue-types#untrusted_intent_creation) +- [UNTRUSTED_URL_RISK](/docs/1.0.0/all-issue-types#untrusted_url_risk) +- [UNTRUSTED_VARIABLE_LENGTH_ARRAY](/docs/1.0.0/all-issue-types#untrusted_variable_length_array) +- [USER_CONTROLLED_SQL_RISK](/docs/1.0.0/all-issue-types#user_controlled_sql_risk) diff --git a/website/versioned_docs/version-1.0.0/checker-racerd.md b/website/versioned_docs/version-1.0.0/checker-racerd.md index 115ea44a3..b2013373a 100644 --- a/website/versioned_docs/version-1.0.0/checker-racerd.md +++ b/website/versioned_docs/version-1.0.0/checker-racerd.md @@ -13,7 +13,7 @@ Supported languages: RacerD finds data races in your C++ and Java code. This page gives a more in-depth explanation of how the analysis works *for Java code*, but may be less complete than the -[Thread Safety Violation bug description page](/docs/all-issue-types#thread_safety_violation). +[Thread Safety Violation bug description page](/docs/1.0.0/all-issue-types#thread_safety_violation). To run the analysis, you can use plain `infer` (to run RacerD along with other analyses that are run by default) or `infer --racerd-only` (to run only RacerD). @@ -498,7 +498,7 @@ resource. ## List of Issue Types The following issue types are reported by this checker: -- [GUARDEDBY_VIOLATION](/docs/all-issue-types#guardedby_violation) -- [INTERFACE_NOT_THREAD_SAFE](/docs/all-issue-types#interface_not_thread_safe) -- [LOCK_CONSISTENCY_VIOLATION](/docs/all-issue-types#lock_consistency_violation) -- [THREAD_SAFETY_VIOLATION](/docs/all-issue-types#thread_safety_violation) +- [GUARDEDBY_VIOLATION](/docs/1.0.0/all-issue-types#guardedby_violation) +- [INTERFACE_NOT_THREAD_SAFE](/docs/1.0.0/all-issue-types#interface_not_thread_safe) +- [LOCK_CONSISTENCY_VIOLATION](/docs/1.0.0/all-issue-types#lock_consistency_violation) +- [THREAD_SAFETY_VIOLATION](/docs/1.0.0/all-issue-types#thread_safety_violation) diff --git a/website/versioned_docs/version-1.0.0/checker-resource-leak-lab.md b/website/versioned_docs/version-1.0.0/checker-resource-leak-lab.md index b278123d4..e375014e8 100644 --- a/website/versioned_docs/version-1.0.0/checker-resource-leak-lab.md +++ b/website/versioned_docs/version-1.0.0/checker-resource-leak-lab.md @@ -16,4 +16,4 @@ This toy checker does nothing by default. Hack on it to make it report resource ## List of Issue Types The following issue types are reported by this checker: -- [LAB_RESOURCE_LEAK](/docs/all-issue-types#lab_resource_leak) +- [LAB_RESOURCE_LEAK](/docs/1.0.0/all-issue-types#lab_resource_leak) diff --git a/website/versioned_docs/version-1.0.0/checker-self-in-block.md b/website/versioned_docs/version-1.0.0/checker-self-in-block.md index a8f1aa3f6..40e5f531f 100644 --- a/website/versioned_docs/version-1.0.0/checker-self-in-block.md +++ b/website/versioned_docs/version-1.0.0/checker-self-in-block.md @@ -16,8 +16,8 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [CAPTURED_STRONG_SELF](/docs/all-issue-types#captured_strong_self) -- [MIXED_SELF_WEAKSELF](/docs/all-issue-types#mixed_self_weakself) -- [MULTIPLE_WEAKSELF](/docs/all-issue-types#multiple_weakself) -- [STRONG_SELF_NOT_CHECKED](/docs/all-issue-types#strong_self_not_checked) -- [WEAK_SELF_IN_NO_ESCAPE_BLOCK](/docs/all-issue-types#weak_self_in_no_escape_block) +- [CAPTURED_STRONG_SELF](/docs/1.0.0/all-issue-types#captured_strong_self) +- [MIXED_SELF_WEAKSELF](/docs/1.0.0/all-issue-types#mixed_self_weakself) +- [MULTIPLE_WEAKSELF](/docs/1.0.0/all-issue-types#multiple_weakself) +- [STRONG_SELF_NOT_CHECKED](/docs/1.0.0/all-issue-types#strong_self_not_checked) +- [WEAK_SELF_IN_NO_ESCAPE_BLOCK](/docs/1.0.0/all-issue-types#weak_self_in_no_escape_block) diff --git a/website/versioned_docs/version-1.0.0/checker-siof.md b/website/versioned_docs/version-1.0.0/checker-siof.md index 80c195c84..806bff6d5 100644 --- a/website/versioned_docs/version-1.0.0/checker-siof.md +++ b/website/versioned_docs/version-1.0.0/checker-siof.md @@ -16,4 +16,4 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [STATIC_INITIALIZATION_ORDER_FIASCO](/docs/all-issue-types#static_initialization_order_fiasco) +- [STATIC_INITIALIZATION_ORDER_FIASCO](/docs/1.0.0/all-issue-types#static_initialization_order_fiasco) diff --git a/website/versioned_docs/version-1.0.0/checker-starvation.md b/website/versioned_docs/version-1.0.0/checker-starvation.md index 21f04ae02..e52996913 100644 --- a/website/versioned_docs/version-1.0.0/checker-starvation.md +++ b/website/versioned_docs/version-1.0.0/checker-starvation.md @@ -21,7 +21,7 @@ Detect several kinds of "starvation" problems: ## List of Issue Types The following issue types are reported by this checker: -- [DEADLOCK](/docs/all-issue-types#deadlock) -- [LOCKLESS_VIOLATION](/docs/all-issue-types#lockless_violation) -- [STARVATION](/docs/all-issue-types#starvation) -- [STRICT_MODE_VIOLATION](/docs/all-issue-types#strict_mode_violation) +- [DEADLOCK](/docs/1.0.0/all-issue-types#deadlock) +- [LOCKLESS_VIOLATION](/docs/1.0.0/all-issue-types#lockless_violation) +- [STARVATION](/docs/1.0.0/all-issue-types#starvation) +- [STRICT_MODE_VIOLATION](/docs/1.0.0/all-issue-types#strict_mode_violation) diff --git a/website/versioned_docs/version-1.0.0/checker-topl-biabd.md b/website/versioned_docs/version-1.0.0/checker-topl-biabd.md index ed32d02e0..bb26dd9d8 100644 --- a/website/versioned_docs/version-1.0.0/checker-topl-biabd.md +++ b/website/versioned_docs/version-1.0.0/checker-topl-biabd.md @@ -16,4 +16,4 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [TOPL_BIABD_ERROR](/docs/all-issue-types#topl_biabd_error) +- [TOPL_BIABD_ERROR](/docs/1.0.0/all-issue-types#topl_biabd_error) diff --git a/website/versioned_docs/version-1.0.0/checker-topl-pulse.md b/website/versioned_docs/version-1.0.0/checker-topl-pulse.md index 12f6f97ae..b4dc2a2ae 100644 --- a/website/versioned_docs/version-1.0.0/checker-topl-pulse.md +++ b/website/versioned_docs/version-1.0.0/checker-topl-pulse.md @@ -16,4 +16,4 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [TOPL_PULSE_ERROR](/docs/all-issue-types#topl_pulse_error) +- [TOPL_PULSE_ERROR](/docs/1.0.0/all-issue-types#topl_pulse_error) diff --git a/website/versioned_docs/version-1.0.0/checker-uninit.md b/website/versioned_docs/version-1.0.0/checker-uninit.md index 749cd625d..32e7534f4 100644 --- a/website/versioned_docs/version-1.0.0/checker-uninit.md +++ b/website/versioned_docs/version-1.0.0/checker-uninit.md @@ -16,4 +16,4 @@ Supported languages: ## List of Issue Types The following issue types are reported by this checker: -- [UNINITIALIZED_VALUE](/docs/all-issue-types#uninitialized_value) +- [UNINITIALIZED_VALUE](/docs/1.0.0/all-issue-types#uninitialized_value) diff --git a/website/versioned_docs/version-1.0.0/support.md b/website/versioned_docs/version-1.0.0/support.md index b99ccebf3..f590c9dec 100644 --- a/website/versioned_docs/version-1.0.0/support.md +++ b/website/versioned_docs/version-1.0.0/support.md @@ -43,7 +43,7 @@ infer run -- xcodebuild -workspace HelloWorld.xcworkspace -scheme HelloWorld ### "infer [options] -- \" fails during a linking step The linker will sometimes not work if files have been compiled using a different -compiler, such as the one Infer uses [under the hood](/docs/infer-workflow) to +compiler, such as the one Infer uses [under the hood](/docs/1.0.0/infer-workflow) to analyze your files. A workaround consists in setting the `LD` environment variable to a dummy