public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug analyzer/96395] New: gcc.dg/analyzer/explode-2.c fails when compiled as C++
@ 2020-07-31  2:07 sandra at gcc dot gnu.org
  2020-07-31 14:04 ` [Bug analyzer/96395] " dmalcolm at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: sandra at gcc dot gnu.org @ 2020-07-31  2:07 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96395

            Bug ID: 96395
           Summary: gcc.dg/analyzer/explode-2.c fails when compiled as C++
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: analyzer
          Assignee: dmalcolm at gcc dot gnu.org
          Reporter: sandra at gcc dot gnu.org
  Target Milestone: ---

gcc.dg/analyzer/explode-2.c triggers a -Wanalyzer-too-complex diagnostic when
compiled as C++, but not as C:

$ x86_64-linux-gnu-g++ /path/to/gcc/testsuite/gcc.dg/analyzer/explode-2.c 
-fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers
-fdiagnostics-color=never  -fdiagnostics-urls=never   -fanalyzer
-fdiagnostics-path-format=separate-events -Wanalyzer-too-complex
-fanalyzer-call-summaries --param analyzer-max-enodes-per-program-point=200
--param analyzer-bb-explosion-factor=50 -S 
cc1plus: warning: analysis bailed out early (701 'after-snode' enodes; 2762
enodes) [-Wanalyzer-too-complex]
...

Increasing both of the params specified in the test case by a factor of 5
didn't seem to help.

I ran into this problem in connection with my patches to unify loop
representations in the C and C++ front ends

https://gcc.gnu.org/pipermail/gcc-patches/2020-March/541954.html

but it can be reproduced separately without those patches just by compiling
with g++ instead of gcc.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug analyzer/96395] gcc.dg/analyzer/explode-2.c fails when compiled as C++
  2020-07-31  2:07 [Bug analyzer/96395] New: gcc.dg/analyzer/explode-2.c fails when compiled as C++ sandra at gcc dot gnu.org
@ 2020-07-31 14:04 ` dmalcolm at gcc dot gnu.org
  2020-07-31 18:10 ` sandra at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: dmalcolm at gcc dot gnu.org @ 2020-07-31 14:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96395

--- Comment #1 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Thanks for filing this.

FWIW I've spent the last 4 months rewriting the state-tracking heart of the
analyzer, with a patch kit I hope to land next month.  Along with many other
changes, explode-2.c changes behavior significantly in my new implementation.

It sounds like we might have to coordinate on how we get our changes into
trunk.

I believe that that test case currently isn't compiled with g++.  Are you
changing that?  Feel free to special-case it if need be if you need that to get
your changes in.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug analyzer/96395] gcc.dg/analyzer/explode-2.c fails when compiled as C++
  2020-07-31  2:07 [Bug analyzer/96395] New: gcc.dg/analyzer/explode-2.c fails when compiled as C++ sandra at gcc dot gnu.org
  2020-07-31 14:04 ` [Bug analyzer/96395] " dmalcolm at gcc dot gnu.org
@ 2020-07-31 18:10 ` sandra at gcc dot gnu.org
  2021-02-12 21:26 ` dmalcolm at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: sandra at gcc dot gnu.org @ 2020-07-31 18:10 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96395

sandra at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sandra at gcc dot gnu.org

--- Comment #2 from sandra at gcc dot gnu.org ---
Once my C/C++ loop unification changes are in, this test case will fail when
compiled as C, too.  Recording that it fails as C++ already gives you a way to
duplicate the bug meanwhile, independently of my patches, and also gives me an
issue to track the future C testsuite regression introduced by my patches.

It seems like it would be a good idea generally to run analyzer unit tests as
both C and C++, though.  This is a pretty simple test case, and yet the
analyzer completely falls over on it, which doesn't fill me with confidence on
how well it would work on any real C++ program, even one that doesn't use
templates or exceptions.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug analyzer/96395] gcc.dg/analyzer/explode-2.c fails when compiled as C++
  2020-07-31  2:07 [Bug analyzer/96395] New: gcc.dg/analyzer/explode-2.c fails when compiled as C++ sandra at gcc dot gnu.org
  2020-07-31 14:04 ` [Bug analyzer/96395] " dmalcolm at gcc dot gnu.org
  2020-07-31 18:10 ` sandra at gcc dot gnu.org
@ 2021-02-12 21:26 ` dmalcolm at gcc dot gnu.org
  2021-02-12 21:33 ` dmalcolm at gcc dot gnu.org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: dmalcolm at gcc dot gnu.org @ 2021-02-12 21:26 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96395

--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Sandra: what is the status of your loop unification changes?

FWIW, I'm not able to reproduce this issue with trunk.  Note that
g:fd111c419d146ee47c7df9a36a535e8d843d4802 fixed a state-explosion bug in how
switch statements are handled, so perhaps that fixed it.

That said, there's merit in generalizing the C tests so they run for both C and
C++, so maybe this bug should track that.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug analyzer/96395] gcc.dg/analyzer/explode-2.c fails when compiled as C++
  2020-07-31  2:07 [Bug analyzer/96395] New: gcc.dg/analyzer/explode-2.c fails when compiled as C++ sandra at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2021-02-12 21:26 ` dmalcolm at gcc dot gnu.org
@ 2021-02-12 21:33 ` dmalcolm at gcc dot gnu.org
  2021-03-19 18:56 ` [Bug analyzer/96395] Generalize gcc.dg/analyzer tests to be run with both C and C++ dmalcolm at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: dmalcolm at gcc dot gnu.org @ 2021-02-12 21:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96395

--- Comment #4 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
(In reply to David Malcolm from comment #3)
> FWIW, I'm not able to reproduce this issue with trunk.  Note that
> g:fd111c419d146ee47c7df9a36a535e8d843d4802 fixed a state-explosion bug in
> how switch statements are handled, so perhaps that fixed it.
(also g:b28491dc2d79763ecbff4f0b9f1f3e48a443be1d, FWIW)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug analyzer/96395] Generalize gcc.dg/analyzer tests to be run with both C and C++
  2020-07-31  2:07 [Bug analyzer/96395] New: gcc.dg/analyzer/explode-2.c fails when compiled as C++ sandra at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2021-02-12 21:33 ` dmalcolm at gcc dot gnu.org
@ 2021-03-19 18:56 ` dmalcolm at gcc dot gnu.org
  2023-08-27 16:24 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: dmalcolm at gcc dot gnu.org @ 2021-03-19 18:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96395

David Malcolm <dmalcolm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |97110
            Summary|gcc.dg/analyzer/explode-2.c |Generalize gcc.dg/analyzer
                   |fails when compiled as C++  |tests to be run with both C
                   |                            |and C++

--- Comment #5 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
(In reply to David Malcolm from comment #3)
> Sandra: what is the status of your loop unification changes?
> 
> FWIW, I'm not able to reproduce this issue with trunk.  Note that
> g:fd111c419d146ee47c7df9a36a535e8d843d4802 fixed a state-explosion bug in
> how switch statements are handled, so perhaps that fixed it.
> 
> That said, there's merit in generalizing the C tests so they run for both C
> and C++, so maybe this bug should track that.

Based on the above, updating summary to:
  "Generalize gcc.dg/analyzer tests to be run with both C and C++"
and adding to C++ tracker bug.

(perhaps they should be moved to c-c++-common as part of this)


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97110
[Bug 97110] [meta-bug] tracker bug for supporting C++ in -fanalyzer

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug analyzer/96395] Generalize gcc.dg/analyzer tests to be run with both C and C++
  2020-07-31  2:07 [Bug analyzer/96395] New: gcc.dg/analyzer/explode-2.c fails when compiled as C++ sandra at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-03-19 18:56 ` [Bug analyzer/96395] Generalize gcc.dg/analyzer tests to be run with both C and C++ dmalcolm at gcc dot gnu.org
@ 2023-08-27 16:24 ` cvs-commit at gcc dot gnu.org
  2023-09-09 16:26 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-08-27 16:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96395

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Benjamin Priour <vultkayn@gcc.gnu.org>:

https://gcc.gnu.org/g:55f6a7d949abc708d1c6ebc01eb3053f96d1472b

commit r14-3503-g55f6a7d949abc708d1c6ebc01eb3053f96d1472b
Author: benjamin priour <vultkayn@gcc.gnu.org>
Date:   Sun Aug 27 14:36:14 2023 +0200

    analyzer: Move gcc.dg/analyzer tests to c-c++-common (1) [PR96395]

    First batch of moving tests from under gcc.dg/analyzer into
    c-c++-common/analyzer.

    C builtins are not recognized as such by C++, therefore
    this patch no longer uses tree.h:fndecl_built_in_p to recognize
    a builtin function, but rather the function names.

    Thus functions named as C builtins - such as calloc, sprintf ... -
    are recognized as such both in C and C++ sources by the analyzer.

    For user-declared functions named after builtins, the latters'
function_decl
    tree are now preferred over the function_decl the user declared, even
    when the FE consider their declaration to mismatch
    (Wbuiltin-declaration-mismatch emitted). This mainly comes into account
    in the handling of these function attributes : the analyzer uses
    the builtin's attributes defined in gcc/builtins.def.

    Signed-off-by: benjamin priour <priour.be@gmail.com>

    gcc/analyzer/ChangeLog:

            PR analyzer/96395
            * analyzer.h (class known_function): Add virtual casts
            to builtin_known_function.
            (class builtin_known_function): New subclass of known_function
            for builtins.
            * kf.cc (class kf_alloca): Now derived from
            builtin_known_function.
            (class kf_calloc): Likewise.
            (class kf_free): Likewise.
            (class kf_malloc): Likewise.
            (class kf_memcpy_memmove): Likewise.
            (class kf_memset): Likewise.
            (class kf_realloc): Likewise.
            (class kf_strchr): Likewise.
            (class kf_sprintf): Likewise.
            (class kf_strcat): Likewise.
            (class kf_strcpy): Likewise.
            (class kf_strdup): Likewise.
            (class kf_strlen): Likewise.
            (class kf_strndup): Likewise.
            (register_known_functions): Builtins are now registered as
            known_functions by name rather than by their BUILTIN_CODE.
            * known-function-manager.cc (get_normal_builtin): New overload.
            * known-function-manager.h: New overload declaration.
            * region-model.cc (region_model::get_builtin_kf): New function.
            * region-model.h (class region_model): Add declaration of
            get_builtin_kf.
            * sm-fd.cc: For called recognized as builtins, use the
            attributes of that builtin as defined in gcc/builtins.def
            rather than the user's.
            * sm-malloc.cc (malloc_state_machine::on_stmt): Likewise.

    gcc/testsuite/ChangeLog:

            PR analyzer/96395
            * gcc.dg/analyzer/aliasing-3.c: Moved to...
            * c-c++-common/analyzer/aliasing-3.c: ...here.
            * gcc.dg/analyzer/aliasing-pr106473.c: Moved to...
            * c-c++-common/analyzer/aliasing-pr106473.c: ...here.
            * gcc.dg/analyzer/asm-x86-dyndbg-2.c: Moved to...
            * c-c++-common/analyzer/asm-x86-dyndbg-2.c: ...here.
            * gcc.dg/analyzer/asm-x86-lp64-2.c: Moved to...
            * c-c++-common/analyzer/asm-x86-lp64-2.c: ...here.
            * gcc.dg/analyzer/atomic-builtins-haproxy-proxy.c: Moved to...
            * c-c++-common/analyzer/atomic-builtins-haproxy-proxy.c: ...here.
            * gcc.dg/analyzer/atomic-builtins-qemu-sockets.c: Moved to...
            * c-c++-common/analyzer/atomic-builtins-qemu-sockets.c: ...here.
            * gcc.dg/analyzer/attr-malloc-6.c: Moved to...
            * c-c++-common/analyzer/attr-malloc-6.c: ...here.
            * gcc.dg/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c: Moved
to...
            * c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c:
...here.
            * gcc.dg/analyzer/attr-tainted_args-1.c: Moved to...
            * c-c++-common/analyzer/attr-tainted_args-1.c: ...here.
            * gcc.dg/analyzer/call-summaries-pr107158.c: Moved to...
            * c-c++-common/analyzer/call-summaries-pr107158.c: ...here.
            * gcc.dg/analyzer/calloc-1.c: Moved to...
            * c-c++-common/analyzer/calloc-1.c: ...here.
            * gcc.dg/analyzer/compound-assignment-5.c: Moved to...
            * c-c++-common/analyzer/compound-assignment-5.c: ...here.
            * gcc.dg/analyzer/coreutils-cksum-pr108664.c: Moved to...
            * c-c++-common/analyzer/coreutils-cksum-pr108664.c: ...here.
            * gcc.dg/analyzer/coreutils-sum-pr108666.c: Moved to...
            * c-c++-common/analyzer/coreutils-sum-pr108666.c: ...here.
            * gcc.dg/analyzer/deref-before-check-pr108455-1.c: Moved to...
            * c-c++-common/analyzer/deref-before-check-pr108455-1.c: ...here.
            * gcc.dg/analyzer/deref-before-check-pr108455-git-pack-revindex.c:
Moved to...
            *
c-c++-common/analyzer/deref-before-check-pr108455-git-pack-revindex.c: ...here.
            * gcc.dg/analyzer/deref-before-check-pr108475-1.c: Moved to...
            * c-c++-common/analyzer/deref-before-check-pr108475-1.c: ...here.
            * gcc.dg/analyzer/deref-before-check-pr108475-haproxy-tcpcheck.c:
Moved to...
            *
c-c++-common/analyzer/deref-before-check-pr108475-haproxy-tcpcheck.c: ...here.
            * gcc.dg/analyzer/deref-before-check-pr109060-haproxy-cfgparse.c:
Moved to...
            *
c-c++-common/analyzer/deref-before-check-pr109060-haproxy-cfgparse.c: ...here.
            * gcc.dg/analyzer/deref-before-check-pr109239-linux-bus.c: Moved
to...
            * c-c++-common/analyzer/deref-before-check-pr109239-linux-bus.c:
...here.
            * gcc.dg/analyzer/deref-before-check-pr77425.c: Moved to...
            * c-c++-common/analyzer/deref-before-check-pr77425.c: ...here.
            * gcc.dg/analyzer/exec-1.c: Moved to...
            * c-c++-common/analyzer/exec-1.c: ...here.
            * gcc.dg/analyzer/feasibility-3.c: Moved to...
            * c-c++-common/analyzer/feasibility-3.c: ...here.
            * gcc.dg/analyzer/fields.c: Moved to...
            * c-c++-common/analyzer/fields.c: ...here.
            * gcc.dg/analyzer/function-ptr-5.c: Moved to...
            * c-c++-common/analyzer/function-ptr-5.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-pr108524-1.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-pr108524-1.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-pr108524-2.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-pr108524-2.c: ...here.
            *
gcc.dg/analyzer/infinite-recursion-pr108524-qobject-json-parser.c: Moved to...
            *
c-c++-common/analyzer/infinite-recursion-pr108524-qobject-json-parser.c:
...here.
            * gcc.dg/analyzer/init.c: Moved to...
            * c-c++-common/analyzer/init.c: ...here.
            * gcc.dg/analyzer/inlining-3-multiline.c: Moved to...
            * c-c++-common/analyzer/inlining-3-multiline.c: ...here.
            * gcc.dg/analyzer/inlining-3.c: Moved to...
            * c-c++-common/analyzer/inlining-3.c: ...here.
            * gcc.dg/analyzer/inlining-4-multiline.c: Moved to...
            * c-c++-common/analyzer/inlining-4-multiline.c: ...here.
            * gcc.dg/analyzer/inlining-4.c: Moved to...
            * c-c++-common/analyzer/inlining-4.c: ...here.
            * gcc.dg/analyzer/leak-pr105906.c: Moved to...
            * c-c++-common/analyzer/leak-pr105906.c: ...here.
            * gcc.dg/analyzer/leak-pr108045-with-call-summaries.c: Moved to...
            * c-c++-common/analyzer/leak-pr108045-with-call-summaries.c:
...here.
            * gcc.dg/analyzer/leak-pr108045-without-call-summaries.c: Moved
to...
            * c-c++-common/analyzer/leak-pr108045-without-call-summaries.c:
...here.
            * gcc.dg/analyzer/leak-pr109059-1.c: Moved to...
            * c-c++-common/analyzer/leak-pr109059-1.c: ...here.
            * gcc.dg/analyzer/leak-pr109059-2.c: Moved to...
            * c-c++-common/analyzer/leak-pr109059-2.c: ...here.
            * gcc.dg/analyzer/malloc-2.c: Moved to...
            * c-c++-common/analyzer/malloc-2.c: ...here.
            * gcc.dg/analyzer/memcpy-2.c: Moved to...
            * c-c++-common/analyzer/memcpy-2.c: ...here.
            *
gcc.dg/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early-O2.c: Moved
to...
            *
c-c++-common/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early-O2.c:
...here.
            * gcc.dg/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early.c:
Moved to...
            *
c-c++-common/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early.c:
...here.
            * gcc.dg/analyzer/null-deref-pr108806-qemu.c: Moved to...
            * c-c++-common/analyzer/null-deref-pr108806-qemu.c: ...here.
            * gcc.dg/analyzer/null-deref-pr108830.c: Moved to...
            * c-c++-common/analyzer/null-deref-pr108830.c: ...here.
            * gcc.dg/analyzer/pr101962.c: Moved to...
            * c-c++-common/analyzer/pr101962.c: ...here.
            * gcc.dg/analyzer/pr103217-2.c: Moved to...
            * c-c++-common/analyzer/pr103217-2.c: ...here.
            * gcc.dg/analyzer/pr103217.c: Moved to...
            * c-c++-common/analyzer/pr103217.c: ...here.
            * gcc.dg/analyzer/pr104029.c: Moved to...
            * c-c++-common/analyzer/pr104029.c: ...here.
            * gcc.dg/analyzer/pr104062.c: Moved to...
            * c-c++-common/analyzer/pr104062.c: ...here.
            * gcc.dg/analyzer/pr105783.c: Moved to...
            * c-c++-common/analyzer/pr105783.c: ...here.
            * gcc.dg/analyzer/pr107345.c: Moved to...
            * c-c++-common/analyzer/pr107345.c: ...here.
            * gcc.dg/analyzer/pr93695-1.c: Moved to...
            * c-c++-common/analyzer/pr93695-1.c: ...here.
            * gcc.dg/analyzer/pr94596.c: Moved to...
            * c-c++-common/analyzer/pr94596.c: ...here.
            * gcc.dg/analyzer/pr94839.c: Moved to...
            * c-c++-common/analyzer/pr94839.c: ...here.
            * gcc.dg/analyzer/pr95152-4.c: C only.
            * gcc.dg/analyzer/pr95152-5.c: C only.
            * gcc.dg/analyzer/pr95240.c: Moved to...
            * c-c++-common/analyzer/pr95240.c: ...here.
            * gcc.dg/analyzer/pr96639.c: Moved to...
            * c-c++-common/analyzer/pr96639.c: ...here.
            * gcc.dg/analyzer/pr96653.c: Moved to...
            * c-c++-common/analyzer/pr96653.c: ...here.
            * gcc.dg/analyzer/pr96792.c: Moved to...
            * c-c++-common/analyzer/pr96792.c: ...here.
            * gcc.dg/analyzer/pr96841.c: Moved to...
            * c-c++-common/analyzer/pr96841.c: ...here.
            * gcc.dg/analyzer/pr98564.c: Moved to...
            * c-c++-common/analyzer/pr98564.c: ...here.
            * gcc.dg/analyzer/pr98628.c: Moved to...
            * c-c++-common/analyzer/pr98628.c: ...here.
            * gcc.dg/analyzer/pr98969.c: Moved to...
            * c-c++-common/analyzer/pr98969.c: ...here.
            * gcc.dg/analyzer/pr99193-2.c: Moved to...
            * c-c++-common/analyzer/pr99193-2.c: ...here.
            * gcc.dg/analyzer/pr99193-3.c: Moved to...
            * c-c++-common/analyzer/pr99193-3.c: ...here.
            * gcc.dg/analyzer/pr99716-1.c: Moved to...
            * c-c++-common/analyzer/pr99716-1.c: ...here.
            * gcc.dg/analyzer/pr99774-1.c: Moved to...
            * c-c++-common/analyzer/pr99774-1.c: ...here.
            * gcc.dg/analyzer/realloc-1.c: Moved to...
            * c-c++-common/analyzer/realloc-1.c: ...here.
            * gcc.dg/analyzer/realloc-2.c: Moved to...
            * c-c++-common/analyzer/realloc-2.c: ...here.
            * gcc.dg/analyzer/realloc-3.c: Moved to...
            * c-c++-common/analyzer/realloc-3.c: ...here.
            * gcc.dg/analyzer/realloc-4.c: Moved to...
            * c-c++-common/analyzer/realloc-4.c: ...here.
            * gcc.dg/analyzer/realloc-5.c: Moved to...
            * c-c++-common/analyzer/realloc-5.c: ...here.
            * gcc.dg/analyzer/realloc-pr110014.c: Moved to...
            * c-c++-common/analyzer/realloc-pr110014.c: ...here.
            * gcc.dg/analyzer/snprintf-concat.c: Moved to...
            * c-c++-common/analyzer/snprintf-concat.c: ...here.
            * gcc.dg/analyzer/sock-1.c: Moved to...
            * c-c++-common/analyzer/sock-1.c: ...here.
            * gcc.dg/analyzer/sprintf-concat.c: Moved to...
            * c-c++-common/analyzer/sprintf-concat.c: ...here.
            * gcc.dg/analyzer/string-ops-concat-pair.c: Moved to...
            * c-c++-common/analyzer/string-ops-concat-pair.c: ...here.
            * gcc.dg/analyzer/string-ops-dup.c: Moved to...
            * c-c++-common/analyzer/string-ops-dup.c: ...here.
            * gcc.dg/analyzer/switch-enum-pr105273-git-vreportf-2.c: Moved
to...
            * c-c++-common/analyzer/switch-enum-pr105273-git-vreportf-2.c:
...here.
            * gcc.dg/analyzer/symbolic-12.c: Moved to...
            * c-c++-common/analyzer/symbolic-12.c: ...here.
            * gcc.dg/analyzer/uninit-alloca.c: Moved to...
            * c-c++-common/analyzer/uninit-alloca.c: ...here.
            * gcc.dg/analyzer/untracked-2.c: Moved to...
            * c-c++-common/analyzer/untracked-2.c: ...here.
            * gcc.dg/analyzer/vasprintf-1.c: Moved to...
            * c-c++-common/analyzer/vasprintf-1.c: ...here.
            * gcc.dg/analyzer/write-to-const-1.c: Moved to...
            * c-c++-common/analyzer/write-to-const-1.c: ...here.
            * gcc.dg/analyzer/write-to-function-1.c: C only.
            * gcc.dg/analyzer/write-to-string-literal-1.c: Moved to...
            * c-c++-common/analyzer/write-to-string-literal-1.c: ...here.
            * gcc.dg/analyzer/write-to-string-literal-4-disabled.c: Moved to...
            * c-c++-common/analyzer/write-to-string-literal-4-disabled.c:
...here.
            * gcc.dg/analyzer/write-to-string-literal-5.c: Moved to...
            * c-c++-common/analyzer/write-to-string-literal-5.c: ...here.
            * g++.dg/analyzer/analyzer.exp: Now also run tests under
            c-c++-common/analyzer.
            * gcc.dg/analyzer/analyzer-decls.h: Add NULL definition.
            * gcc.dg/analyzer/analyzer.exp: Now also run tests under
            c-c++-common/analyzer.
            * gcc.dg/analyzer/pr104369-1.c: C only.
            * gcc.dg/analyzer/pr104369-2.c: Likewise.
            * gcc.dg/analyzer/pr93355-localealias-feasibility-2.c: Likewise.
            * gcc.dg/analyzer/sprintf-1.c: Split into C-only and
            C++-friendly bits.
            * gcc.dg/analyzer/allocation-size-multiline-1.c: Removed.
            * gcc.dg/analyzer/allocation-size-multiline-2.c: Removed.
            * gcc.dg/analyzer/allocation-size-multiline-3.c: Removed.
            * gcc.dg/analyzer/data-model-11.c: Removed.
            * gcc.dg/analyzer/pr61861.c: C only.
            * gcc.dg/analyzer/pr93457.c: Removed.
            * gcc.dg/analyzer/pr97568.c: Removed.
            * gcc.dg/analyzer/write-to-string-literal-4.c: Removed.
            * c-c++-common/analyzer/allocation-size-multiline-1.c: New test.
            * c-c++-common/analyzer/allocation-size-multiline-2.c: New test.
            * c-c++-common/analyzer/allocation-size-multiline-3.c: New test.
            * c-c++-common/analyzer/data-model-11.c: New test.
            * c-c++-common/analyzer/pr93457.c: New test.
            * c-c++-common/analyzer/pr97568.c: New test.
            * c-c++-common/analyzer/sprintf-2.c: C++-friendly bit of
            previous gcc.dg/analyzer/sprintf-1.c.
            * c-c++-common/analyzer/write-to-string-literal-4.c: New test.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug analyzer/96395] Generalize gcc.dg/analyzer tests to be run with both C and C++
  2020-07-31  2:07 [Bug analyzer/96395] New: gcc.dg/analyzer/explode-2.c fails when compiled as C++ sandra at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2023-08-27 16:24 ` cvs-commit at gcc dot gnu.org
@ 2023-09-09 16:26 ` cvs-commit at gcc dot gnu.org
  2023-12-14 21:54 ` cvs-commit at gcc dot gnu.org
  2024-05-03 13:12 ` cvs-commit at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-09-09 16:26 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96395

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Benjamin Priour <vultkayn@gcc.gnu.org>:

https://gcc.gnu.org/g:50b5199cff690891726877e1c00ac53dfb7cc1c8

commit r14-3823-g50b5199cff690891726877e1c00ac53dfb7cc1c8
Author: benjamin priour <vultkayn@gcc.gnu.org>
Date:   Sat Sep 9 18:03:56 2023 +0200

    analyzer: Move gcc.dg/analyzer tests to c-c++-common (2) [PR96395]

    Second batch of moving tests from under gcc.dg/analyzer into
    c-c++-common/analyzer.

    Prior to this patch the analyzer was not unwrapping ordering
    binop_svalue, such as LT_EXPR, when evaluating conditions.

    Therefore when an ordering conditional was stored, the analyzer
    was missing out on some constraints, which led to false positives.

    gcc/analyzer/ChangeLog:

            PR analyzer/96395
            * region-model.cc
            (region_model::add_constraints_from_binop): binop_svalues around
            LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR are now unwrapped.

    gcc/testsuite/ChangeLog:

            PR analyzer/96395
            * gcc.dg/analyzer/allocation-size-1.c: Moved to...
            * c-c++-common/analyzer/allocation-size-1.c: ...here.
            * gcc.dg/analyzer/allocation-size-2.c: Moved to...
            * c-c++-common/analyzer/allocation-size-2.c: ...here.
            * gcc.dg/analyzer/allocation-size-3.c: Moved to...
            * c-c++-common/analyzer/allocation-size-3.c: ...here.
            * gcc.dg/analyzer/allocation-size-4.c: Moved to...
            * c-c++-common/analyzer/allocation-size-4.c: ...here.
            * gcc.dg/analyzer/analyzer-verbosity-0.c: Moved to...
            * c-c++-common/analyzer/analyzer-verbosity-0.c: ...here.
            * gcc.dg/analyzer/analyzer-verbosity-1.c: Moved to...
            * c-c++-common/analyzer/analyzer-verbosity-1.c: ...here.
            * gcc.dg/analyzer/analyzer-verbosity-2.c: Moved to...
            * c-c++-common/analyzer/analyzer-verbosity-2.c: ...here.
            * gcc.dg/analyzer/analyzer-verbosity-3.c: Moved to...
            * c-c++-common/analyzer/analyzer-verbosity-3.c: ...here.
            * gcc.dg/analyzer/attr-alloc_size-1.c: Moved to...
            * c-c++-common/analyzer/attr-alloc_size-1.c: ...here.
            * gcc.dg/analyzer/attr-alloc_size-2.c: Moved to...
            * c-c++-common/analyzer/attr-alloc_size-2.c: ...here.
            * gcc.dg/analyzer/call-summaries-malloc.c: Moved to...
            * c-c++-common/analyzer/call-summaries-malloc.c: ...here.
            * gcc.dg/analyzer/call-summaries-pr107158-2.c: Moved to...
            * c-c++-common/analyzer/call-summaries-pr107158-2.c: ...here.
            * gcc.dg/analyzer/capacity-1.c: Moved to...
            * c-c++-common/analyzer/capacity-1.c: ...here.
            * gcc.dg/analyzer/dot-output.c: Moved to...
            * c-c++-common/analyzer/dot-output.c: ...here.
            * gcc.dg/analyzer/escaping-1.c: Moved to...
            * c-c++-common/analyzer/escaping-1.c: ...here.
            * gcc.dg/analyzer/expect-1.c: Moved to...
            * c-c++-common/analyzer/expect-1.c: ...here.
            * gcc.dg/analyzer/fgets-1.c: Moved to...
            * c-c++-common/analyzer/fgets-1.c: ...here.
            * gcc.dg/analyzer/file-uninit-1.c: Moved to...
            * c-c++-common/analyzer/file-uninit-1.c: ...here.
            * gcc.dg/analyzer/fileno-1.c: Moved to...
            * c-c++-common/analyzer/fileno-1.c: ...here.
            * gcc.dg/analyzer/first-field-1.c: Moved to...
            * c-c++-common/analyzer/first-field-1.c: ...here.
            * gcc.dg/analyzer/first-field-2.c: Moved to...
            * c-c++-common/analyzer/first-field-2.c: ...here.
            * gcc.dg/analyzer/flex-with-call-summaries.c: Moved to...
            * c-c++-common/analyzer/flex-with-call-summaries.c: ...here.
            * gcc.dg/analyzer/flex-without-call-summaries.c: Moved to...
            * c-c++-common/analyzer/flex-without-call-summaries.c: ...here.
            * gcc.dg/analyzer/flexible-array-member-1.c: Moved to...
            * c-c++-common/analyzer/flexible-array-member-1.c: ...here.
            * gcc.dg/analyzer/fold-string-to-char.c: Moved to...
            * c-c++-common/analyzer/fold-string-to-char.c: ...here.
            * gcc.dg/analyzer/fread-1.c: Moved to...
            * c-c++-common/analyzer/fread-1.c: ...here.
            * gcc.dg/analyzer/fread-2.c: Moved to...
            * c-c++-common/analyzer/fread-2.c: ...here.
            * gcc.dg/analyzer/fread-pr108661.c: Moved to...
            * c-c++-common/analyzer/fread-pr108661.c: ...here.
            * gcc.dg/analyzer/function-ptr-1.c: Moved to...
            * c-c++-common/analyzer/function-ptr-1.c: ...here.
            * gcc.dg/analyzer/function-ptr-2.c: Moved to...
            * c-c++-common/analyzer/function-ptr-2.c: ...here.
            * gcc.dg/analyzer/function-ptr-3.c: Moved to...
            * c-c++-common/analyzer/function-ptr-3.c: ...here.
            * gcc.dg/analyzer/function-ptr-4.c: Moved to...
            * c-c++-common/analyzer/function-ptr-4.c: ...here.
            * gcc.dg/analyzer/getc-1.c: Moved to...
            * c-c++-common/analyzer/getc-1.c: ...here.
            * gcc.dg/analyzer/getchar-1.c: Moved to...
            * c-c++-common/analyzer/getchar-1.c: ...here.
            * gcc.dg/analyzer/gzio-2.c: Moved to...
            * c-c++-common/analyzer/gzio-2.c: ...here.
            * gcc.dg/analyzer/gzio-3.c: Moved to...
            * c-c++-common/analyzer/gzio-3.c: ...here.
            * gcc.dg/analyzer/gzio-3a.c: Moved to...
            * c-c++-common/analyzer/gzio-3a.c: ...here.
            * gcc.dg/analyzer/gzio.c: Moved to...
            * c-c++-common/analyzer/gzio.c: ...here.
            * gcc.dg/analyzer/imprecise-floating-point-1.c: Moved to...
            * c-c++-common/analyzer/imprecise-floating-point-1.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-2.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-2.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-3.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-3.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-4-limited-buggy.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-4-limited-buggy.c:
...here.
            * gcc.dg/analyzer/infinite-recursion-4-limited.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-4-limited.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-4-unlimited-buggy.c: Moved
to...
            * c-c++-common/analyzer/infinite-recursion-4-unlimited-buggy.c:
...here.
            * gcc.dg/analyzer/infinite-recursion-4-unlimited.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-4-unlimited.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-5.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-5.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-alloca.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-alloca.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-inlining.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-inlining.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-multiline-1.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-multiline-1.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-multiline-2.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-multiline-2.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-pr108935-1.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-pr108935-1.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-pr108935-1a.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-pr108935-1a.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-pr108935-2.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-pr108935-2.c: ...here.
            * gcc.dg/analyzer/infinite-recursion-variadic.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion-variadic.c: ...here.
            * gcc.dg/analyzer/infinite-recursion.c: Moved to...
            * c-c++-common/analyzer/infinite-recursion.c: ...here.
            * gcc.dg/analyzer/inlining-1-multiline.c: Moved to...
            * c-c++-common/analyzer/inlining-1-multiline.c: ...here.
            * gcc.dg/analyzer/inlining-1-no-undo.c: Moved to...
            * c-c++-common/analyzer/inlining-1-no-undo.c: ...here.
            * gcc.dg/analyzer/inlining-2-multiline.c: Moved to...
            * c-c++-common/analyzer/inlining-2-multiline.c: ...here.
            * gcc.dg/analyzer/inlining-5-multiline.c: Moved to...
            * c-c++-common/analyzer/inlining-5-multiline.c: ...here.
            * gcc.dg/analyzer/inlining-6-multiline.c: Moved to...
            * c-c++-common/analyzer/inlining-6-multiline.c: ...here.
            * gcc.dg/analyzer/inlining-6.c: Moved to...
            * c-c++-common/analyzer/inlining-6.c: ...here.
            * gcc.dg/analyzer/inlining-7-multiline.c: Moved to...
            * c-c++-common/analyzer/inlining-7-multiline.c: ...here.
            * gcc.dg/analyzer/invalid-shift-1.c: Moved to...
            * c-c++-common/analyzer/invalid-shift-1.c: ...here.
            * gcc.dg/analyzer/isatty-1.c: Moved to...
            * c-c++-common/analyzer/isatty-1.c: ...here.
            * gcc.dg/analyzer/leak-2.c: Moved to...
            * c-c++-common/analyzer/leak-2.c: ...here.
            * gcc.dg/analyzer/leak-3.c: Moved to...
            * c-c++-common/analyzer/leak-3.c: ...here.
            * gcc.dg/analyzer/leak-4.c: Moved to...
            * c-c++-common/analyzer/leak-4.c: ...here.
            * gcc.dg/analyzer/loop-0-up-to-n-by-1-with-iter-obj.c: Moved to...
            * c-c++-common/analyzer/loop-0-up-to-n-by-1-with-iter-obj.c:
...here.
            * gcc.dg/analyzer/loop-0-up-to-n-by-1.c: Moved to...
            * c-c++-common/analyzer/loop-0-up-to-n-by-1.c: ...here.
            * gcc.dg/analyzer/loop-2.c: Moved to...
            * c-c++-common/analyzer/loop-2.c: ...here.
            * gcc.dg/analyzer/loop-2a.c: Moved to...
            * c-c++-common/analyzer/loop-2a.c: ...here.
            * gcc.dg/analyzer/loop-3.c: Moved to...
            * c-c++-common/analyzer/loop-3.c: ...here.
            * gcc.dg/analyzer/loop-4.c: Moved to...
            * c-c++-common/analyzer/loop-4.c: ...here.
            * gcc.dg/analyzer/loop-n-down-to-1-by-1.c: Moved to...
            * c-c++-common/analyzer/loop-n-down-to-1-by-1.c: ...here.
            * gcc.dg/analyzer/loop-start-down-to-end-by-1.c: Moved to...
            * c-c++-common/analyzer/loop-start-down-to-end-by-1.c: ...here.
            * gcc.dg/analyzer/loop-start-down-to-end-by-step.c: Moved to...
            * c-c++-common/analyzer/loop-start-down-to-end-by-step.c: ...here.
            * gcc.dg/analyzer/loop-start-to-end-by-step.c: Moved to...
            * c-c++-common/analyzer/loop-start-to-end-by-step.c: ...here.
            * gcc.dg/analyzer/loop-start-up-to-end-by-1.c: Moved to...
            * c-c++-common/analyzer/loop-start-up-to-end-by-1.c: ...here.
            * gcc.dg/analyzer/loop.c: Moved to...
            * c-c++-common/analyzer/loop.c: ...here.
            * gcc.dg/analyzer/malloc-3.c: Moved to...
            * c-c++-common/analyzer/malloc-3.c: ...here.
            * gcc.dg/analyzer/malloc-5.c: Moved to...
            * c-c++-common/analyzer/malloc-5.c: ...here.
            * gcc.dg/analyzer/malloc-CWE-401-example.c: Moved to...
            * c-c++-common/analyzer/malloc-CWE-401-example.c: ...here.
            * gcc.dg/analyzer/malloc-CWE-415-examples.c: Moved to...
            * c-c++-common/analyzer/malloc-CWE-415-examples.c: ...here.
            * gcc.dg/analyzer/malloc-CWE-416-examples.c: Moved to...
            * c-c++-common/analyzer/malloc-CWE-416-examples.c: ...here.
            * gcc.dg/analyzer/malloc-CWE-590-examples.c: Moved to...
            * c-c++-common/analyzer/malloc-CWE-590-examples.c: ...here.
            * gcc.dg/analyzer/malloc-callbacks.c: Moved to...
            * c-c++-common/analyzer/malloc-callbacks.c: ...here.
            * gcc.dg/analyzer/malloc-dce.c: Moved to...
            * c-c++-common/analyzer/malloc-dce.c: ...here.
            * gcc.dg/analyzer/malloc-dedupe-1.c: Moved to...
            * c-c++-common/analyzer/malloc-dedupe-1.c: ...here.
            * gcc.dg/analyzer/malloc-in-loop.c: Moved to...
            * c-c++-common/analyzer/malloc-in-loop.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-1.c: Moved to...
            * c-c++-common/analyzer/malloc-ipa-1.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-11.c: Moved to...
            * c-c++-common/analyzer/malloc-ipa-11.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-2.c: Moved to...
            * c-c++-common/analyzer/malloc-ipa-2.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-3.c: Moved to...
            * c-c++-common/analyzer/malloc-ipa-3.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-4.c: Moved to...
            * c-c++-common/analyzer/malloc-ipa-4.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-5.c: Moved to...
            * c-c++-common/analyzer/malloc-ipa-5.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-6.c: Moved to...
            * c-c++-common/analyzer/malloc-ipa-6.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-7.c: Moved to...
            * c-c++-common/analyzer/malloc-ipa-7.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-8-unchecked.c: Moved to...
            * c-c++-common/analyzer/malloc-ipa-8-unchecked.c: ...here.
            * gcc.dg/analyzer/malloc-macro-inline-events.c: Moved to...
            * c-c++-common/analyzer/malloc-macro-inline-events.c: ...here.
            * gcc.dg/analyzer/malloc-macro-separate-events.c: Moved to...
            * c-c++-common/analyzer/malloc-macro-separate-events.c: ...here.
            * gcc.dg/analyzer/malloc-macro.h: Moved to...
            * c-c++-common/analyzer/malloc-macro.h: ...here.
            * gcc.dg/analyzer/null-deref-pr108400-SoftEtherVPN-WebUi.c: Moved
to...
            * c-c++-common/analyzer/null-deref-pr108400-SoftEtherVPN-WebUi.c:
...here.
            * gcc.dg/analyzer/out-of-bounds-1.c: Moved to...
            * c-c++-common/analyzer/out-of-bounds-1.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-2.c: Moved to...
            * c-c++-common/analyzer/out-of-bounds-2.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-5.c: Moved to...
            * c-c++-common/analyzer/out-of-bounds-5.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-diagram-11.c: Moved to...
            * c-c++-common/analyzer/out-of-bounds-diagram-11.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-diagram-3.c: Moved to...
            * c-c++-common/analyzer/out-of-bounds-diagram-3.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-diagram-8.c: Moved to...
            * c-c++-common/analyzer/out-of-bounds-diagram-8.c: ...here.
            * gcc.dg/analyzer/phi-1.c: Moved to...
            * c-c++-common/analyzer/phi-1.c: ...here.
            * gcc.dg/analyzer/pr100615.c: Moved to...
            * c-c++-common/analyzer/pr100615.c: ...here.
            * gcc.dg/analyzer/pr103526.c: Moved to...
            * c-c++-common/analyzer/pr103526.c: ...here.
            * gcc.dg/analyzer/pr94362-1.c: Moved to...
            * c-c++-common/analyzer/pr94362-1.c: ...here.
            * gcc.dg/analyzer/pr97074.c: Moved to...
            * c-c++-common/analyzer/pr97074.c: ...here.
            * c-c++-common/analyzer/pr99193-2.c: Added include.
            * c-c++-common/analyzer/realloc-1.c: Added include.
            * gcc.dg/analyzer/scope-1.c: Moved to...
            * c-c++-common/analyzer/scope-1.c: ...here.
            * gcc.dg/analyzer/setjmp-2.c: Moved to...
            * c-c++-common/analyzer/setjmp-2.c: ...here.
            * gcc.dg/analyzer/setjmp-5.c: Moved to...
            * c-c++-common/analyzer/setjmp-5.c: ...here.
            * gcc.dg/analyzer/setjmp-9.c: Moved to...
            * c-c++-common/analyzer/setjmp-9.c: ...here.
            * gcc.dg/analyzer/signal-4a.c: Moved to...
            * c-c++-common/analyzer/signal-4a.c: ...here.
            * gcc.dg/analyzer/signal-4b.c: Moved to...
            * c-c++-common/analyzer/signal-4b.c: ...here.
            * gcc.dg/analyzer/file-pr58237.c: C only.
            * gcc.dg/analyzer/fopen-1.c: C only.
            * gcc.dg/analyzer/malloc-4.c: C only.
            * gcc.dg/analyzer/malloc-paths-9.c: C only.
            * gcc.dg/analyzer/pr103892.c: C only.
            * gcc.dg/analyzer/pr109577.c: C only.
            * gcc.dg/analyzer/pr93355-localealias-feasibility.c: C only.
            * gcc.dg/analyzer/pr99193-1.c: C only.
            * gcc.dg/analyzer/compound-assignment-1.c: Removed.
            * gcc.dg/analyzer/inlining-1.c: Removed.
            * gcc.dg/analyzer/inlining-2.c: Removed.
            * gcc.dg/analyzer/inlining-5.c: Removed.
            * gcc.dg/analyzer/inlining-7.c: Removed.
            * c-c++-common/analyzer/compound-assignment-1.c: New test.
            * c-c++-common/analyzer/file-pr58237-noexcept.c: Duplicate of
            gcc.dg/analyzer/file-pr58237.c with exceptions disabled.
            * c-c++-common/analyzer/fopen-2.c: C++ compatible parts from
            gcc.dg/analyzer/fopen-1.c.
            * c-c++-common/analyzer/inlining-1.c: New test.
            * c-c++-common/analyzer/inlining-2.c: New test.
            * c-c++-common/analyzer/inlining-5.c: New test.
            * c-c++-common/analyzer/inlining-7.c: New test.
            * c-c++-common/analyzer/malloc-paths-9-noexcept.c: Duplicate of
            gcc.dg/analyzer/malloc-paths-9.c with exceptions disabled.
            * c-c++-common/analyzer/pr109577-noexcept.c: Duplicate of
            gcc.dg/analyzer/pr109577.c with exceptions disabled.
            * c-c++-common/analyzer/pr93355-localealias-feasibility-noexcept.c:
            Duplicate of gcc.dg/analyzer/pr93355-localealias-feasibility.c with
            exceptions disabled.
            * c-c++-common/analyzer/pr99193-1-noexcept.c: Duplicate of
            gcc.dg/analyzer/pr99193-1.c with exceptions disabled.

    Signed-off-by: benjamin priour <vultkayn@gcc.gnu.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug analyzer/96395] Generalize gcc.dg/analyzer tests to be run with both C and C++
  2020-07-31  2:07 [Bug analyzer/96395] New: gcc.dg/analyzer/explode-2.c fails when compiled as C++ sandra at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2023-09-09 16:26 ` cvs-commit at gcc dot gnu.org
@ 2023-12-14 21:54 ` cvs-commit at gcc dot gnu.org
  2024-05-03 13:12 ` cvs-commit at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-12-14 21:54 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96395

--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by David Malcolm <dmalcolm@gcc.gnu.org>:

https://gcc.gnu.org/g:ae034b9106fbdd855ec22ce221bb61a1a9a532c3

commit r14-6564-gae034b9106fbdd855ec22ce221bb61a1a9a532c3
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Thu Dec 14 16:53:50 2023 -0500

    testsuite: move more analyzer test cases to c-c++-common (3) [PR96395]

    Move a further 268 tests from gcc.dg/analyzer to c-c++-common/analyzer.

    gcc/testsuite/ChangeLog:
            PR analyzer/96395
            * c-c++-common/analyzer/analyzer-decls.h: New header.
            * gcc.dg/analyzer/20020129-1.c: Move to...
            * c-c++-common/analyzer/20020129-1.c: ...here.
            * gcc.dg/analyzer/SARD-tc117-basic-00001-min.c: Move to...
            * c-c++-common/analyzer/SARD-tc117-basic-00001-min.c: ...here.
            * gcc.dg/analyzer/SARD-tc249-basic-00034-min.c: Move to...
            * c-c++-common/analyzer/SARD-tc249-basic-00034-min.c: ...here.
            * gcc.dg/analyzer/abort.c: Move to...
            * c-c++-common/analyzer/abort.c: ...here.
            * gcc.dg/analyzer/aliasing-1.c: Move to...
            * c-c++-common/analyzer/aliasing-1.c: ...here.
            * gcc.dg/analyzer/aliasing-2.c: Move to...
            * c-c++-common/analyzer/aliasing-2.c: ...here.
            * gcc.dg/analyzer/alloca-leak.c: Move to...
            * c-c++-common/analyzer/alloca-leak.c: ...here.
            * gcc.dg/analyzer/analyzer-debugging-fns-1.c: Move to...
            * c-c++-common/analyzer/analyzer-debugging-fns-1.c: ...here.
            * gcc.dg/analyzer/analyzer-verbosity-2a.c: Move to...
            * c-c++-common/analyzer/analyzer-verbosity-2a.c: ...here.
            * gcc.dg/analyzer/analyzer-verbosity-3a.c: Move to...
            * c-c++-common/analyzer/analyzer-verbosity-3a.c: ...here.
            * gcc.dg/analyzer/asm-x86-1.c: Move to...
            * c-c++-common/analyzer/asm-x86-1.c: ...here.
            * gcc.dg/analyzer/attr-alloc_size-3.c: Move to...
            * c-c++-common/analyzer/attr-alloc_size-3.c: ...here.
            * gcc.dg/analyzer/attr-const-1.c: Move to...
            * c-c++-common/analyzer/attr-const-1.c: ...here.
            * gcc.dg/analyzer/attr-const-2.c: Move to...
            * c-c++-common/analyzer/attr-const-2.c: ...here.
            * gcc.dg/analyzer/attr-const-3.c: Move to...
            * c-c++-common/analyzer/attr-const-3.c: ...here.
            * gcc.dg/analyzer/attr-malloc-2.c: Move to...
            * c-c++-common/analyzer/attr-malloc-2.c: ...here.
            * gcc.dg/analyzer/attr-malloc-4.c: Move to...
            * c-c++-common/analyzer/attr-malloc-4.c: ...here.
            * gcc.dg/analyzer/attr-malloc-5.c: Move to...
            * c-c++-common/analyzer/attr-malloc-5.c: ...here.
            * gcc.dg/analyzer/attr-malloc-misuses.c: Move to...
            * c-c++-common/analyzer/attr-malloc-misuses.c: ...here.
            * gcc.dg/analyzer/attr-tainted_args-misuses.c: Move to...
            * c-c++-common/analyzer/attr-tainted_args-misuses.c: ...here.
            * gcc.dg/analyzer/bzip2-arg-parse-1.c: Move to...
            * c-c++-common/analyzer/bzip2-arg-parse-1.c: ...here.
            * gcc.dg/analyzer/call-summaries-1.c: Move to...
            * c-c++-common/analyzer/call-summaries-1.c: ...here.
            * gcc.dg/analyzer/call-summaries-3.c: Move to...
            * c-c++-common/analyzer/call-summaries-3.c: ...here.
            * gcc.dg/analyzer/call-summaries-asm-x86.c: Move to...
            * c-c++-common/analyzer/call-summaries-asm-x86.c: ...here.
            * gcc.dg/analyzer/callbacks-1.c: Move to...
            * c-c++-common/analyzer/callbacks-1.c: ...here.
            * gcc.dg/analyzer/callbacks-2.c: Move to...
            * c-c++-common/analyzer/callbacks-2.c: ...here.
            * gcc.dg/analyzer/callbacks-3.c: Move to...
            * c-c++-common/analyzer/callbacks-3.c: ...here.
            * gcc.dg/analyzer/capacity-2.c: Move to...
            * c-c++-common/analyzer/capacity-2.c: ...here.
            * gcc.dg/analyzer/capacity-3.c: Move to...
            * c-c++-common/analyzer/capacity-3.c: ...here.
            * gcc.dg/analyzer/casts-1.c: Move to...
            * c-c++-common/analyzer/casts-1.c: ...here.
            * gcc.dg/analyzer/casts-2.c: Move to...
            * c-c++-common/analyzer/casts-2.c: ...here.
            * gcc.dg/analyzer/clobbers-1.c: Move to...
            * c-c++-common/analyzer/clobbers-1.c: ...here.
            * gcc.dg/analyzer/compound-assignment-4.c: Move to...
            * c-c++-common/analyzer/compound-assignment-4.c: ...here.
            * gcc.dg/analyzer/data-model-12.c: Move to...
            * c-c++-common/analyzer/data-model-12.c: ...here.
            * gcc.dg/analyzer/data-model-14.c: Move to...
            * c-c++-common/analyzer/data-model-14.c: ...here.
            * gcc.dg/analyzer/data-model-18.c: Move to...
            * c-c++-common/analyzer/data-model-18.c: ...here.
            * gcc.dg/analyzer/data-model-2.c: Move to...
            * c-c++-common/analyzer/data-model-2.c: ...here.
            * gcc.dg/analyzer/data-model-20.c: Move to...
            * c-c++-common/analyzer/data-model-20.c: ...here.
            * gcc.dg/analyzer/data-model-21.c: Move to...
            * c-c++-common/analyzer/data-model-21.c: ...here.
            * gcc.dg/analyzer/data-model-22.c: Move to...
            * c-c++-common/analyzer/data-model-22.c: ...here.
            * gcc.dg/analyzer/data-model-4.c: Move to...
            * c-c++-common/analyzer/data-model-4.c: ...here.
            * gcc.dg/analyzer/data-model-5d.c: Move to...
            * c-c++-common/analyzer/data-model-5d.c: ...here.
            * gcc.dg/analyzer/data-model-8.c: Move to...
            * c-c++-common/analyzer/data-model-8.c: ...here.
            * gcc.dg/analyzer/data-model-path-1.c: Move to...
            * c-c++-common/analyzer/data-model-path-1.c: ...here.
            * gcc.dg/analyzer/deref-before-check-2.c: Move to...
            * c-c++-common/analyzer/deref-before-check-2.c: ...here.
            * gcc.dg/analyzer/deref-before-check-macro-pr108745.c: Move to...
            * c-c++-common/analyzer/deref-before-check-macro-pr108745.c:
...here.
            * gcc.dg/analyzer/deref-before-check-qemu-qtest_rsp_args.c: Move
to...
            * c-c++-common/analyzer/deref-before-check-qemu-qtest_rsp_args.c:
            ...here.
            * gcc.dg/analyzer/disabling.c: Move to...
            * c-c++-common/analyzer/disabling.c: ...here.
            * gcc.dg/analyzer/dump-state.c: Move to...
            * c-c++-common/analyzer/dump-state.c: ...here.
            * gcc.dg/analyzer/edges-2.c: Move to...
            * c-c++-common/analyzer/edges-2.c: ...here.
            * gcc.dg/analyzer/equivalence.c: Move to...
            * c-c++-common/analyzer/equivalence.c: ...here.
            * gcc.dg/analyzer/errno-1.c: Move to...
            * c-c++-common/analyzer/errno-1.c: ...here.
            * gcc.dg/analyzer/errno-___errno.c: Move to...
            * c-c++-common/analyzer/errno-___errno.c: ...here.
            * gcc.dg/analyzer/errno-__error.c: Move to...
            * c-c++-common/analyzer/errno-__error.c: ...here.
            * gcc.dg/analyzer/errno-global-var.c: Move to...
            * c-c++-common/analyzer/errno-global-var.c: ...here.
            * gcc.dg/analyzer/errno-pr107777.c: Move to...
            * c-c++-common/analyzer/errno-pr107777.c: ...here.
            * gcc.dg/analyzer/error-3.c: Move to...
            * c-c++-common/analyzer/error-3.c: ...here.
            * gcc.dg/analyzer/error-uninit.c: Move to...
            * c-c++-common/analyzer/error-uninit.c: ...here.
            * gcc.dg/analyzer/factorial.c: Move to...
            * c-c++-common/analyzer/factorial.c: ...here.
            * gcc.dg/analyzer/fd-1.c: Move to...
            * c-c++-common/analyzer/fd-1.c: ...here.
            * gcc.dg/analyzer/fd-2.c: Move to...
            * c-c++-common/analyzer/fd-2.c: ...here.
            * gcc.dg/analyzer/fd-3.c: Move to...
            * c-c++-common/analyzer/fd-3.c: ...here.
            * gcc.dg/analyzer/fd-bind-pr107928.c: Move to...
            * c-c++-common/analyzer/fd-bind-pr107928.c: ...here.
            * gcc.dg/analyzer/fd-connect-pr107928.c: Move to...
            * c-c++-common/analyzer/fd-connect-pr107928.c: ...here.
            * gcc.dg/analyzer/fd-glibc-byte-stream-socket.c: Move to...
            * c-c++-common/analyzer/fd-glibc-byte-stream-socket.c: ...here.
            * gcc.dg/analyzer/fd-manpage-getaddrinfo-client.c: Move to...
            * c-c++-common/analyzer/fd-manpage-getaddrinfo-client.c: ...here.
            * gcc.dg/analyzer/fd-mappage-getaddrinfo-server.c: Move to...
            * c-c++-common/analyzer/fd-mappage-getaddrinfo-server.c: ...here.
            * gcc.dg/analyzer/fd-meaning.c: Move to...
            * c-c++-common/analyzer/fd-meaning.c: ...here.
            * gcc.dg/analyzer/fd-socket-meaning.c: Move to...
            * c-c++-common/analyzer/fd-socket-meaning.c: ...here.
            * gcc.dg/analyzer/fd-symbolic-socket.c: Move to...
            * c-c++-common/analyzer/fd-symbolic-socket.c: ...here.
            * gcc.dg/analyzer/fd-uninit-1.c: Move to...
            * c-c++-common/analyzer/fd-uninit-1.c: ...here.
            * gcc.dg/analyzer/feasibility-1.c: Move to...
            * c-c++-common/analyzer/feasibility-1.c: ...here.
            * gcc.dg/analyzer/feasibility-2.c: Move to...
            * c-c++-common/analyzer/feasibility-2.c: ...here.
            * gcc.dg/analyzer/feasibility-4.c: Move to...
            * c-c++-common/analyzer/feasibility-4.c: ...here.
            * gcc.dg/analyzer/feasibility-pr107948.c: Move to...
            * c-c++-common/analyzer/feasibility-pr107948.c: ...here.
            * gcc.dg/analyzer/ferror-1.c: Move to...
            * c-c++-common/analyzer/ferror-1.c: ...here.
            * gcc.dg/analyzer/fibonacci.c: Move to...
            * c-c++-common/analyzer/fibonacci.c: ...here.
            * gcc.dg/analyzer/file-1.c: Move to...
            * c-c++-common/analyzer/file-1.c: ...here.
            * gcc.dg/analyzer/file-3.c: Move to...
            * c-c++-common/analyzer/file-3.c: ...here.
            * gcc.dg/analyzer/file-meaning-1.c: Move to...
            * c-c++-common/analyzer/file-meaning-1.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-10.c: Move to...
            * c-c++-common/analyzer/malloc-ipa-10.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-12.c: Move to...
            * c-c++-common/analyzer/malloc-ipa-12.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-13a.c: Move to...
            * c-c++-common/analyzer/malloc-ipa-13a.c: ...here.
            * gcc.dg/analyzer/malloc-ipa-9.c: Move to...
            * c-c++-common/analyzer/malloc-ipa-9.c: ...here.
            * gcc.dg/analyzer/malloc-many-paths-1.c: Move to...
            * c-c++-common/analyzer/malloc-many-paths-1.c: ...here.
            * gcc.dg/analyzer/malloc-many-paths-3.c: Move to...
            * c-c++-common/analyzer/malloc-many-paths-3.c: ...here.
            * gcc.dg/analyzer/malloc-meaning-1.c: Move to...
            * c-c++-common/analyzer/malloc-meaning-1.c: ...here.
            * gcc.dg/analyzer/malloc-paths-1.c: Move to...
            * c-c++-common/analyzer/malloc-paths-1.c: ...here.
            * gcc.dg/analyzer/malloc-paths-2.c: Move to...
            * c-c++-common/analyzer/malloc-paths-2.c: ...here.
            * gcc.dg/analyzer/malloc-paths-3.c: Move to...
            * c-c++-common/analyzer/malloc-paths-3.c: ...here.
            * gcc.dg/analyzer/malloc-paths-4.c: Move to...
            * c-c++-common/analyzer/malloc-paths-4.c: ...here.
            * gcc.dg/analyzer/malloc-paths-5.c: Move to...
            * c-c++-common/analyzer/malloc-paths-5.c: ...here.
            * gcc.dg/analyzer/malloc-paths-6.c: Move to...
            * c-c++-common/analyzer/malloc-paths-6.c: ...here.
            * gcc.dg/analyzer/malloc-paths-7.c: Move to...
            * c-c++-common/analyzer/malloc-paths-7.c: ...here.
            * gcc.dg/analyzer/malloc-paths-8.c: Move to...
            * c-c++-common/analyzer/malloc-paths-8.c: ...here.
            * gcc.dg/analyzer/malloc-sarif-1.c: Move to...
            * c-c++-common/analyzer/malloc-sarif-1.c: ...here.
            * gcc.dg/analyzer/malloc-vs-local-1a.c: Move to...
            * c-c++-common/analyzer/malloc-vs-local-1a.c: ...here.
            * gcc.dg/analyzer/malloc-vs-local-1b.c: Move to...
            * c-c++-common/analyzer/malloc-vs-local-1b.c: ...here.
            * gcc.dg/analyzer/malloc-vs-local-2.c: Move to...
            * c-c++-common/analyzer/malloc-vs-local-2.c: ...here.
            * gcc.dg/analyzer/malloc-vs-local-3.c: Move to...
            * c-c++-common/analyzer/malloc-vs-local-3.c: ...here.
            * gcc.dg/analyzer/many-disabled-diagnostics.c: Move to...
            * c-c++-common/analyzer/many-disabled-diagnostics.c: ...here.
            * gcc.dg/analyzer/many-unused-locals.c: Move to...
            * c-c++-common/analyzer/many-unused-locals.c: ...here.
            * gcc.dg/analyzer/memcpy-pr107882.c: Move to...
            * c-c++-common/analyzer/memcpy-pr107882.c: ...here.
            * gcc.dg/analyzer/memset-1.c: Move to...
            * c-c++-common/analyzer/memset-1.c: ...here.
            * gcc.dg/analyzer/memset-2.c: Move to...
            * c-c++-common/analyzer/memset-2.c: ...here.
            * gcc.dg/analyzer/named-constants-via-macros-2.c: Move to...
            * c-c++-common/analyzer/named-constants-via-macros-2.c: ...here.
            * gcc.dg/analyzer/named-constants-via-macros-3.c: Move to...
            * c-c++-common/analyzer/named-constants-via-macros-3.c: ...here.
            * gcc.dg/analyzer/named-constants-via-macros-4.c: Move to...
            * c-c++-common/analyzer/named-constants-via-macros-4.c: ...here.
            * gcc.dg/analyzer/named-constants-via-macros-empty.c: Move to...
            * c-c++-common/analyzer/named-constants-via-macros-empty.c:
...here.
            * gcc.dg/analyzer/named-constants-via-macros-traditional.c: Move
to...
            * c-c++-common/analyzer/named-constants-via-macros-traditional.c:
            ...here.
            * gcc.dg/analyzer/named-constants-via-macros-undef.c: Move to...
            * c-c++-common/analyzer/named-constants-via-macros-undef.c:
...here.
            * gcc.dg/analyzer/omp-parallel-for-1.c: Move to...
            * c-c++-common/analyzer/omp-parallel-for-1.c: ...here.
            * gcc.dg/analyzer/omp-parallel-for-get-min.c: Move to...
            * c-c++-common/analyzer/omp-parallel-for-get-min.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-3.c: Move to...
            * c-c++-common/analyzer/out-of-bounds-3.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-coreutils.c: Move to...
            * c-c++-common/analyzer/out-of-bounds-coreutils.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-curl.c: Move to...
            * c-c++-common/analyzer/out-of-bounds-curl.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-diagram-1-json.c: Move to...
            * c-c++-common/analyzer/out-of-bounds-diagram-1-json.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-diagram-1-sarif.c: Move to...

            * c-c++-common/analyzer/out-of-bounds-diagram-1-sarif.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-pr110387.c: Move to...
            * c-c++-common/analyzer/out-of-bounds-pr110387.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-read-char-arr.c: Move to...
            * c-c++-common/analyzer/out-of-bounds-read-char-arr.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-read-int-arr.c: Move to...
            * c-c++-common/analyzer/out-of-bounds-read-int-arr.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-read-struct-arr.c: Move to...
            * c-c++-common/analyzer/out-of-bounds-read-struct-arr.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-write-char-arr.c: Move to...
            * c-c++-common/analyzer/out-of-bounds-write-char-arr.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-write-int-arr.c: Move to...
            * c-c++-common/analyzer/out-of-bounds-write-int-arr.c: ...here.
            * gcc.dg/analyzer/out-of-bounds-write-struct-arr.c: Move to...
            * c-c++-common/analyzer/out-of-bounds-write-struct-arr.c: ...here.
            * gcc.dg/analyzer/params-2.c: Move to...
            * c-c++-common/analyzer/params-2.c: ...here.
            * gcc.dg/analyzer/paths-1.c: Move to...
            * c-c++-common/analyzer/paths-1.c: ...here.
            * gcc.dg/analyzer/paths-1a.c: Move to...
            * c-c++-common/analyzer/paths-1a.c: ...here.
            * gcc.dg/analyzer/paths-2.c: Move to...
            * c-c++-common/analyzer/paths-2.c: ...here.
            * gcc.dg/analyzer/paths-3.c: Move to...
            * c-c++-common/analyzer/paths-3.c: ...here.
            * gcc.dg/analyzer/paths-4.c: Move to...
            * c-c++-common/analyzer/paths-4.c: ...here.
            * gcc.dg/analyzer/paths-5.c: Move to...
            * c-c++-common/analyzer/paths-5.c: ...here.
            * gcc.dg/analyzer/paths-6.c: Move to...
            * c-c++-common/analyzer/paths-6.c: ...here.
            * gcc.dg/analyzer/paths-7.c: Move to...
            * c-c++-common/analyzer/paths-7.c: ...here.
            * gcc.dg/analyzer/paths-8.c: Move to...
            * c-c++-common/analyzer/paths-8.c: ...here.
            * gcc.dg/analyzer/pattern-test-1.c: Move to...
            * c-c++-common/analyzer/pattern-test-1.c: ...here.
            * gcc.dg/analyzer/pipe-pr107486.c: Move to...
            * c-c++-common/analyzer/pipe-pr107486.c: ...here.
            * gcc.dg/analyzer/pointer-merging.c: Move to...
            * c-c++-common/analyzer/pointer-merging.c: ...here.
            * gcc.dg/analyzer/pr100546.c: Move to...
            * c-c++-common/analyzer/pr100546.c: ...here.
            * gcc.dg/analyzer/pr101503.c: Move to...
            * c-c++-common/analyzer/pr101503.c: ...here.
            * gcc.dg/analyzer/pr101570.c: Move to...
            * c-c++-common/analyzer/pr101570.c: ...here.
            * gcc.dg/analyzer/pr101721.c: Move to...
            * c-c++-common/analyzer/pr101721.c: ...here.
            * gcc.dg/analyzer/pr102692-2.c: Move to...
            * c-c++-common/analyzer/pr102692-2.c: ...here.
            * gcc.dg/analyzer/pr102695.c: Move to...
            * c-c++-common/analyzer/pr102695.c: ...here.
            * gcc.dg/analyzer/pr103217-3.c: Move to...
            * c-c++-common/analyzer/pr103217-3.c: ...here.
            * gcc.dg/analyzer/pr103217-4.c: Move to...
            * c-c++-common/analyzer/pr103217-4.c: ...here.
            * gcc.dg/analyzer/pr103217-5.c: Move to...
            * c-c++-common/analyzer/pr103217-5.c: ...here.
            * gcc.dg/analyzer/pr104089.c: Move to...
            * c-c++-common/analyzer/pr104089.c: ...here.
            * gcc.dg/analyzer/pr104308.c: Move to...
            * c-c++-common/analyzer/pr104308.c: ...here.
            * gcc.dg/analyzer/pr104452.c: Move to...
            * c-c++-common/analyzer/pr104452.c: ...here.
            * gcc.dg/analyzer/pr104524.c: Move to...
            * c-c++-common/analyzer/pr104524.c: ...here.
            * gcc.dg/analyzer/pr104560-2.c: Move to...
            * c-c++-common/analyzer/pr104560-2.c: ...here.
            * gcc.dg/analyzer/pr105087-1.c: Move to...
            * c-c++-common/analyzer/pr105087-1.c: ...here.
            * gcc.dg/analyzer/pr105087-2.c: Move to...
            * c-c++-common/analyzer/pr105087-2.c: ...here.
            * gcc.dg/analyzer/pr105252.c: Move to...
            * c-c++-common/analyzer/pr105252.c: ...here.
            * gcc.dg/analyzer/pr106394.c: Move to...
            * c-c++-common/analyzer/pr106394.c: ...here.
            * gcc.dg/analyzer/pr106539.c: Move to...
            * c-c++-common/analyzer/pr106539.c: ...here.
            * gcc.dg/analyzer/pr106845.c: Move to...
            * c-c++-common/analyzer/pr106845.c: ...here.
            * gcc.dg/analyzer/pr109439.c: Move to...
            * c-c++-common/analyzer/pr109439.c: ...here.
            * gcc.dg/analyzer/pr110455.c: Move to...
            * c-c++-common/analyzer/pr110455.c: ...here.
            * gcc.dg/analyzer/pr93032-mztools-simplified.c: Move to...
            * c-c++-common/analyzer/pr93032-mztools-simplified.c: ...here.
            * gcc.dg/analyzer/pr93290.c: Move to...
            * c-c++-common/analyzer/pr93290.c: ...here.
            * gcc.dg/analyzer/pr93352.c: Move to...
            * c-c++-common/analyzer/pr93352.c: ...here.
            * gcc.dg/analyzer/pr93355-localealias-feasibility-3.c: Move to...
            * c-c++-common/analyzer/pr93355-localealias-feasibility-3.c:
...here.
            * gcc.dg/analyzer/pr93355-localealias-simplified.c: Move to...
            * c-c++-common/analyzer/pr93355-localealias-simplified.c: ...here.
            * gcc.dg/analyzer/pr93546.c: Move to...
            * c-c++-common/analyzer/pr93546.c: ...here.
            * gcc.dg/analyzer/pr93547.c: Move to...
            * c-c++-common/analyzer/pr93547.c: ...here.
            * gcc.dg/analyzer/pr93669.c: Move to...
            * c-c++-common/analyzer/pr93669.c: ...here.
            * gcc.dg/analyzer/pr93938.c: Move to...
            * c-c++-common/analyzer/pr93938.c: ...here.
            * gcc.dg/analyzer/pr94047.c: Move to...
            * c-c++-common/analyzer/pr94047.c: ...here.
            * gcc.dg/analyzer/pr94099.c: Move to...
            * c-c++-common/analyzer/pr94099.c: ...here.
            * gcc.dg/analyzer/pr94105.c: Move to...
            * c-c++-common/analyzer/pr94105.c: ...here.
            * gcc.dg/analyzer/pr94362-2.c: Move to...
            * c-c++-common/analyzer/pr94362-2.c: ...here.
            * gcc.dg/analyzer/pr94399.c: Move to...
            * c-c++-common/analyzer/pr94399.c: ...here.
            * gcc.dg/analyzer/pr94447.c: Move to...
            * c-c++-common/analyzer/pr94447.c: ...here.
            * gcc.dg/analyzer/pr94639.c: Move to...
            * c-c++-common/analyzer/pr94639.c: ...here.
            * gcc.dg/analyzer/pr94640.c: Move to...
            * c-c++-common/analyzer/pr94640.c: ...here.
            * gcc.dg/analyzer/pr94732.c: Move to...
            * c-c++-common/analyzer/pr94732.c: ...here.
            * gcc.dg/analyzer/pr94851-1.c: Move to...
            * c-c++-common/analyzer/pr94851-1.c: ...here.
            * gcc.dg/analyzer/pr94851-2.c: Move to...
            * c-c++-common/analyzer/pr94851-2.c: ...here.
            * gcc.dg/analyzer/pr94851-3.c: Move to...
            * c-c++-common/analyzer/pr94851-3.c: ...here.
            * gcc.dg/analyzer/pr94851-4.c: Move to...
            * c-c++-common/analyzer/pr94851-4.c: ...here.
            * gcc.dg/analyzer/pr95026.c: Move to...
            * c-c++-common/analyzer/pr95026.c: ...here.
            * gcc.dg/analyzer/pr96598.c: Move to...
            * c-c++-common/analyzer/pr96598.c: ...here.
            * gcc.dg/analyzer/pr96611.c: Move to...
            * c-c++-common/analyzer/pr96611.c: ...here.
            * gcc.dg/analyzer/pr96644.c: Move to...
            * c-c++-common/analyzer/pr96644.c: ...here.
            * gcc.dg/analyzer/pr96646.c: Move to...
            * c-c++-common/analyzer/pr96646.c: ...here.
            * gcc.dg/analyzer/pr96648.c: Move to...
            * c-c++-common/analyzer/pr96648.c: ...here.
            * gcc.dg/analyzer/pr96650-1-notrans.c: Move to...
            * c-c++-common/analyzer/pr96650-1-notrans.c: ...here.
            * gcc.dg/analyzer/pr96650-1-trans.c: Move to...
            * c-c++-common/analyzer/pr96650-1-trans.c: ...here.
            * gcc.dg/analyzer/pr96650-2-notrans.c: Move to...
            * c-c++-common/analyzer/pr96650-2-notrans.c: ...here.
            * gcc.dg/analyzer/pr96650-2-trans.c: Move to...
            * c-c++-common/analyzer/pr96650-2-trans.c: ...here.
            * gcc.dg/analyzer/pr96651-1.c: Move to...
            * c-c++-common/analyzer/pr96651-1.c: ...here.
            * gcc.dg/analyzer/pr96699.c: Move to...
            * c-c++-common/analyzer/pr96699.c: ...here.
            * gcc.dg/analyzer/pr96705.c: Move to...
            * c-c++-common/analyzer/pr96705.c: ...here.
            * gcc.dg/analyzer/pr96713.c: Move to...
            * c-c++-common/analyzer/pr96713.c: ...here.
            * gcc.dg/analyzer/pr96764.c: Move to...
            * c-c++-common/analyzer/pr96764.c: ...here.
            * gcc.dg/analyzer/pr96777.c: Move to...
            * c-c++-common/analyzer/pr96777.c: ...here.
            * gcc.dg/analyzer/pr96860-2.c: Move to...
            * c-c++-common/analyzer/pr96860-2.c: ...here.
            * gcc.dg/analyzer/pr97029.c: Move to...
            * c-c++-common/analyzer/pr97029.c: ...here.
            * gcc.dg/analyzer/pr97072.c: Move to...
            * c-c++-common/analyzer/pr97072.c: ...here.
            * gcc.dg/analyzer/pr97130.c: Move to...
            * c-c++-common/analyzer/pr97130.c: ...here.
            * gcc.dg/analyzer/pr97233.c: Move to...
            * c-c++-common/analyzer/pr97233.c: ...here.
            * gcc.dg/analyzer/pr97514.c: Move to...
            * c-c++-common/analyzer/pr97514.c: ...here.
            * gcc.dg/analyzer/pr97608.c: Move to...
            * c-c++-common/analyzer/pr97608.c: ...here.
            * gcc.dg/analyzer/pr97668.c: Move to...
            * c-c++-common/analyzer/pr97668.c: ...here.
            * gcc.dg/analyzer/pr98073.c: Move to...
            * c-c++-common/analyzer/pr98073.c: ...here.
            * gcc.dg/analyzer/pr98575-1.c: Move to...
            * c-c++-common/analyzer/pr98575-1.c: ...here.
            * gcc.dg/analyzer/pr98580-a.c: Move to...
            * c-c++-common/analyzer/pr98580-a.c: ...here.
            * gcc.dg/analyzer/pr98580-b.c: Move to...
            * c-c++-common/analyzer/pr98580-b.c: ...here.
            * gcc.dg/analyzer/pr98918.c: Move to...
            * c-c++-common/analyzer/pr98918.c: ...here.
            * gcc.dg/analyzer/pr99044-2.c: Move to...
            * c-c++-common/analyzer/pr99044-2.c: ...here.
            * gcc.dg/analyzer/pr99716-2.c: Move to...
            * c-c++-common/analyzer/pr99716-2.c: ...here.
            * gcc.dg/analyzer/pr99716-3.c: Move to...
            * c-c++-common/analyzer/pr99716-3.c: ...here.
            * gcc.dg/analyzer/pr99906.c: Move to...
            * c-c++-common/analyzer/pr99906.c: ...here.
            * gcc.dg/analyzer/pragma-1.c: Move to...
            * c-c++-common/analyzer/pragma-1.c: ...here.
            * gcc.dg/analyzer/pragma-2.c: Move to...
            * c-c++-common/analyzer/pragma-2.c: ...here.
            * gcc.dg/analyzer/refcounting-1.c: Move to...
            * c-c++-common/analyzer/refcounting-1.c: ...here.
            * gcc.dg/analyzer/rhbz1878600.c: Move to...
            * c-c++-common/analyzer/rhbz1878600.c: ...here.
            * gcc.dg/analyzer/sarif-pr107366.c: Move to...
            * c-c++-common/analyzer/sarif-pr107366.c: ...here.
            * gcc.dg/analyzer/setjmp-pr109094.c: Move to...
            * c-c++-common/analyzer/setjmp-pr109094.c: ...here.
            * gcc.dg/analyzer/sock-2.c: Move to...
            * c-c++-common/analyzer/sock-2.c: ...here.
            * gcc.dg/analyzer/stale-frame-1.c: Move to...
            * c-c++-common/analyzer/stale-frame-1.c: ...here.
            * gcc.dg/analyzer/stdarg-sentinel-1.c: Move to...
            * c-c++-common/analyzer/stdarg-sentinel-1.c: ...here.
            * gcc.dg/analyzer/stdarg-types-2.c: Move to...
            * c-c++-common/analyzer/stdarg-types-2.c: ...here.
            * gcc.dg/analyzer/stdarg-types-3.c: Move to...
            * c-c++-common/analyzer/stdarg-types-3.c: ...here.
            * gcc.dg/analyzer/stdarg-types-4.c: Move to...
            * c-c++-common/analyzer/stdarg-types-4.c: ...here.
            * gcc.dg/analyzer/strcpy-2.c: Move to...
            * c-c++-common/analyzer/strcpy-2.c: ...here.
            * gcc.dg/analyzer/strndup-1.c: Move to...
            * c-c++-common/analyzer/strndup-1.c: ...here.
            * gcc.dg/analyzer/switch-wrong-enum.c: Move to...
            * c-c++-common/analyzer/switch-wrong-enum.c: ...here.
            * gcc.dg/analyzer/symbolic-1.c: Move to...
            * c-c++-common/analyzer/symbolic-1.c: ...here.
            * gcc.dg/analyzer/symbolic-2.c: Move to...
            * c-c++-common/analyzer/symbolic-2.c: ...here.
            * gcc.dg/analyzer/symbolic-3.c: Move to...
            * c-c++-common/analyzer/symbolic-3.c: ...here.
            * gcc.dg/analyzer/symbolic-4.c: Move to...
            * c-c++-common/analyzer/symbolic-4.c: ...here.
            * gcc.dg/analyzer/symbolic-5.c: Move to...
            * c-c++-common/analyzer/symbolic-5.c: ...here.
            * gcc.dg/analyzer/symbolic-6.c: Move to...
            * c-c++-common/analyzer/symbolic-6.c: ...here.
            * gcc.dg/analyzer/symbolic-7.c: Move to...
            * c-c++-common/analyzer/symbolic-7.c: ...here.
            * gcc.dg/analyzer/symbolic-8.c: Move to...
            * c-c++-common/analyzer/symbolic-8.c: ...here.
            * gcc.dg/analyzer/symbolic-gt-1.c: Move to...
            * c-c++-common/analyzer/symbolic-gt-1.c: ...here.
            * gcc.dg/analyzer/taint-alloc-3.c: Move to...
            * c-c++-common/analyzer/taint-alloc-3.c: ...here.
            * gcc.dg/analyzer/taint-assert-BUG_ON.c: Move to...
            * c-c++-common/analyzer/taint-assert-BUG_ON.c: ...here.
            * gcc.dg/analyzer/taint-divisor-2.c: Move to...
            * c-c++-common/analyzer/taint-divisor-2.c: ...here.
            * gcc.dg/analyzer/taint-merger.c: Move to...
            * c-c++-common/analyzer/taint-merger.c: ...here.
            * gcc.dg/analyzer/taint-realloc.c: Move to...
            * c-c++-common/analyzer/taint-realloc.c: ...here.
            * gcc.dg/analyzer/uninit-1.c: Move to...
            * c-c++-common/analyzer/uninit-1.c: ...here.
            * gcc.dg/analyzer/uninit-2.c: Move to...
            * c-c++-common/analyzer/uninit-2.c: ...here.
            * gcc.dg/analyzer/uninit-3.c: Move to...
            * c-c++-common/analyzer/uninit-3.c: ...here.
            * gcc.dg/analyzer/uninit-6.c: Move to...
            * c-c++-common/analyzer/uninit-6.c: ...here.
            * gcc.dg/analyzer/uninit-6b.c: Move to...
            * c-c++-common/analyzer/uninit-6b.c: ...here.
            * gcc.dg/analyzer/uninit-8.c: Move to...
            * c-c++-common/analyzer/uninit-8.c: ...here.
            * gcc.dg/analyzer/uninit-pr104576.c: Move to...
            * c-c++-common/analyzer/uninit-pr104576.c: ...here.
            * gcc.dg/analyzer/uninit-pr106204.c: Move to...
            * c-c++-common/analyzer/uninit-pr106204.c: ...here.
            * gcc.dg/analyzer/uninit-pr108704.c: Move to...
            * c-c++-common/analyzer/uninit-pr108704.c: ...here.
            * gcc.dg/analyzer/uninit-pr108806-qemu.c: Move to...
            * c-c++-common/analyzer/uninit-pr108806-qemu.c: ...here.
            * gcc.dg/analyzer/uninit-pr108968-register.c: Move to...
            * c-c++-common/analyzer/uninit-pr108968-register.c: ...here.
            * gcc.dg/analyzer/uninit-pr94713.c: Move to...
            * c-c++-common/analyzer/uninit-pr94713.c: ...here.
            * gcc.dg/analyzer/uninit-pr94714.c: Move to...
            * c-c++-common/analyzer/uninit-pr94714.c: ...here.
            * gcc.dg/analyzer/unknown-fns-2.c: Move to...
            * c-c++-common/analyzer/unknown-fns-2.c: ...here.
            * gcc.dg/analyzer/unknown-fns-3.c: Move to...
            * c-c++-common/analyzer/unknown-fns-3.c: ...here.
            * gcc.dg/analyzer/unknown-fns-4.c: Move to...
            * c-c++-common/analyzer/unknown-fns-4.c: ...here.
            * gcc.dg/analyzer/unused-local-1.c: Move to...
            * c-c++-common/analyzer/unused-local-1.c: ...here.
            * gcc.dg/analyzer/use-after-free-2.c: Move to...
            * c-c++-common/analyzer/use-after-free-2.c: ...here.
            * gcc.dg/analyzer/use-after-free-3.c: Move to...
            * c-c++-common/analyzer/use-after-free-3.c: ...here.
            * gcc.dg/analyzer/vsnprintf-1.c: Move to...
            * c-c++-common/analyzer/vsnprintf-1.c: ...here.
            * gcc.dg/analyzer/zlib-1.c: Move to...
            * c-c++-common/analyzer/zlib-1.c: ...here.
            * gcc.dg/analyzer/zlib-2.c: Move to...
            * c-c++-common/analyzer/zlib-2.c: ...here.
            * gcc.dg/analyzer/zlib-4.c: Move to...
            * c-c++-common/analyzer/zlib-4.c: ...here.
            * gcc.dg/analyzer/zlib-5.c: Move to...
            * c-c++-common/analyzer/zlib-5.c: ...here.

    Signed-off-by: David Malcolm <dmalcolm@redhat.com>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug analyzer/96395] Generalize gcc.dg/analyzer tests to be run with both C and C++
  2020-07-31  2:07 [Bug analyzer/96395] New: gcc.dg/analyzer/explode-2.c fails when compiled as C++ sandra at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2023-12-14 21:54 ` cvs-commit at gcc dot gnu.org
@ 2024-05-03 13:12 ` cvs-commit at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-05-03 13:12 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96395

--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by David Malcolm <dmalcolm@gcc.gnu.org>:

https://gcc.gnu.org/g:5219414f3cde3c1037e289a6654cd722cfa75dea

commit r15-131-g5219414f3cde3c1037e289a6654cd722cfa75dea
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Fri May 3 09:05:29 2024 -0400

    testsuite: fix analyzer C++ failures on Solaris [PR111475]

    As part of PR analyzer/96395, these patches moved testcases from
    gcc.dg/analyzer to c-c++-common/analyzer:
    - r14-3503-g55f6a7d949abc7
    - r14-3823-g50b5199cff6908
    - r14-6564-gae034b9106fbdd

    Unfortunately this led to numerous g++ testsuite failures on Solaris,
    tracked as PR analyzer/111475.

    Almost all of the failures are due to standard library differences where
    including a C standard library on C++ e.g. <stdlib.h> leads to the plain
    symbols referencing the symbols "std::" via a "using" declaration,
    whereas I had written the code expecting them to use symbols in the root
    namespace.

    The analyzer has special-case handling of many functions by name.
    This patch generalizes such handling to also match against functions
    in "std::" for all of the cases I found in the testsuite (via manual
    inspection of the preprocessed test cases against Solaris headers).
    This fixes cases where the analyzer was failing to "know about" the
    behavior of such functions.

    Other such failures are due to "std::" prefixes appearing in names of
    functions in the output, leading to mismatches against expected output.
    The patch adds regexes to some cases, and moves some other cases back
    from c-c++-common to gcc.dg where the dg-multiline syntax isn't
    expressive enough.

    Various "fd-*.c" failures relate to Solaris's socket-handling functions
    not being marked with "noexcept", where due to PR analyzer/97111 we
    mishandle the exception-handling edges in the CFG, leading to leak
    false positives.  The patch works around this by adding -fno-exceptions
    to these cases, pending a proper fix for PR analyzer/97111.

    gcc/analyzer/ChangeLog:
            PR analyzer/111475
            * analyzer.cc (is_special_named_call_p): Add "look_in_std" param.
            (is_std_function_p): Make non-static.
            * analyzer.h (is_special_named_call_p): Add optional "look_in_std"
            param.
            (is_std_function_p): New decl.
            * engine.cc (stmt_requires_new_enode_p): Look for both "signal"
            and "std::signal".
            * kf.cc (register_known_functions): Add various "std::" copies
            of the known functions.
            * known-function-manager.cc
            (known_function_manager::~known_function_manager): Clean up
            m_std_ns_map_id_to_kf.
            (known_function_manager::add_std_ns): New.
            (known_function_manager::get_match): Also look for known "std::"
            functions.
            (known_function_manager::get_by_identifier_in_std_ns): New.
            * known-function-manager.h
            (known_function_manager::add_std_ns): New decl.
            (known_function_manager::get_by_identifier_in_std_ns): New decl.
            (known_function_manager::m_std_ns_map_id_to_kf): New field.
            * sm-file.cc (register_known_file_functions): Add various "std::"
            copies of the known functions.
            * sm-malloc.cc (malloc_state_machine::on_stmt): Handle
            "std::realloc".
            * sm-signal.cc (signal_unsafe_p): Consider "std::" copies of the
            functions as also being async-signal-unsafe.
            (signal_state_machine::on_stmt): Consider "std::signal".

    gcc/testsuite/ChangeLog:
            PR analyzer/111475
            * c-c++-common/analyzer/fd-glibc-byte-stream-socket.c: Add
            -fno-exceptions for now.
            * c-c++-common/analyzer/fd-manpage-getaddrinfo-client.c: Likewise.
            * c-c++-common/analyzer/fd-mappage-getaddrinfo-server.c: Rename
to...
            * c-c++-common/analyzer/fd-manpage-getaddrinfo-server.c: ...this,
and
            add -fno-exceptions for now.
            * c-c++-common/analyzer/fd-socket-meaning.c: Add -fno-exceptions
            for now.
            * c-c++-common/analyzer/fd-symbolic-socket.c: Likewise.
            * c-c++-common/analyzer/flexible-array-member-1.c: Use regexp to
            handle C vs C++ differences in spelling of function name, which
            could have a "std::" prefix on some targets.
            * c-c++-common/analyzer/pr106539.c: Likewise.
            * c-c++-common/analyzer/malloc-ipa-8-unchecked.c: Move back to...
            * gcc.dg/analyzer/malloc-ipa-8-unchecked.c: ...here, dropping
            attempt to generalize output for C vs C++.
            * c-c++-common/analyzer/signal-4a.c: Move back to...
            * gcc.dg/analyzer/signal-4a.c: ...here, dropping attempt to
            generalize output for C vs C++.
            * c-c++-common/analyzer/signal-4b.c: Move back to...
            * gcc.dg/analyzer/signal-4b.c: ...here, dropping attempt to
            generalize output for C vs C++.

    Signed-off-by: David Malcolm <dmalcolm@redhat.com>

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-05-03 13:12 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-31  2:07 [Bug analyzer/96395] New: gcc.dg/analyzer/explode-2.c fails when compiled as C++ sandra at gcc dot gnu.org
2020-07-31 14:04 ` [Bug analyzer/96395] " dmalcolm at gcc dot gnu.org
2020-07-31 18:10 ` sandra at gcc dot gnu.org
2021-02-12 21:26 ` dmalcolm at gcc dot gnu.org
2021-02-12 21:33 ` dmalcolm at gcc dot gnu.org
2021-03-19 18:56 ` [Bug analyzer/96395] Generalize gcc.dg/analyzer tests to be run with both C and C++ dmalcolm at gcc dot gnu.org
2023-08-27 16:24 ` cvs-commit at gcc dot gnu.org
2023-09-09 16:26 ` cvs-commit at gcc dot gnu.org
2023-12-14 21:54 ` cvs-commit at gcc dot gnu.org
2024-05-03 13:12 ` cvs-commit at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).