2022-08-23 18:39:21 +02:00
|
|
|
// RUN: not %clang_analyze_cc1 -analyzer-checker=core -analyzer-store=region %s 2>&1 \
|
|
|
|
// RUN: | FileCheck %s --check-prefixes=DEPRECATED-STORE
|
|
|
|
// DEPRECATED-STORE: error: unknown argument: '-analyzer-store=region'
|
2022-06-14 09:20:41 +02:00
|
|
|
|
2022-08-23 18:39:21 +02:00
|
|
|
// RUN: not %clang_analyze_cc1 -analyzer-checker=core -analyzer-opt-analyze-nested-blocks %s 2>&1 \
|
|
|
|
// RUN: | FileCheck %s --check-prefixes=DEPRECATED-NESTED-BLOCKS
|
|
|
|
// DEPRECATED-NESTED-BLOCKS: error: unknown argument: '-analyzer-opt-analyze-nested-blocks'
|
2022-06-14 09:20:41 +02:00
|
|
|
|
2023-07-07 13:24:33 +02:00
|
|
|
// RUN: not %clang_analyze_cc1 -analyzer-checker=core -analyzer-config consider-single-element-arrays-as-flexible-array-members=true %s 2>&1 \
|
|
|
|
// RUN: | FileCheck %s --check-prefixes=DEPRECATED-SINGLE-ELEM-FAM
|
|
|
|
// DEPRECATED-SINGLE-ELEM-FAM: error: unknown analyzer-config 'consider-single-element-arrays-as-flexible-array-members'
|
[analyzer] Deprecate FAM analyzer-config, recommend -fstrict-flex-arrays instead
By default, clang assumes that all trailing array objects could be a
FAM. So, an array of undefined size, size 0, size 1, or even size 42 is
considered as FAMs for optimizations at least.
One needs to override the default behavior by supplying the
`-fstrict-flex-arrays=<N>` flag, with `N > 0` value to reduce the set of
FAM candidates. Value `3` is the most restrictive and `0` is the most
permissive on this scale.
0: all trailing arrays are FAMs
1: only incomplete, zero and one-element arrays are FAMs
2: only incomplete, zero-element arrays are FAMs
3: only incomplete arrays are FAMs
If the user is happy with consdering single-element arrays as FAMs, they
just need to remove the
`consider-single-element-arrays-as-flexible-array-members` from the
command line.
Otherwise, if they don't want to recognize such cases as FAMs, they
should specify `-fstrict-flex-arrays` anyway, which will be picked up by
CSA.
Any use of the deprecated analyzer-config value will trigger a warning
explaining what to use instead.
The `-analyzer-config-help` is updated accordingly.
Depends on D138657
Reviewed By: xazax.hun
Differential Revision: https://reviews.llvm.org/D138659
2022-11-25 10:24:56 +01:00
|
|
|
|
|
|
|
|
2023-07-07 13:24:33 +02:00
|
|
|
void empty() {}
|