public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/110282] New: Segmentation fault with specific optimizations
@ 2023-06-16 11:01 19373742 at buaa dot edu.cn
  2023-06-16 11:02 ` [Bug c/110282] " 19373742 at buaa dot edu.cn
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: 19373742 at buaa dot edu.cn @ 2023-06-16 11:01 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 110282
           Summary: Segmentation fault with specific optimizations
           Product: gcc
           Version: 11.4.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: 19373742 at buaa dot edu.cn
  Target Milestone: ---

Created attachment 55343
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55343&action=edit
The preprocessed file

*******************************************************************************
OS and Platform:
CentOS Linux release 7.9.2009 (Core), x86_64 GNU/Linux
*******************************************************************************
gcc version:

# /home/gcc-releases/gcc-11-0615/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/home/gcc-releases/gcc-11-0615/bin/gcc
COLLECT_LTO_WRAPPER=/home/gcc-releases/gcc-11-0615/libexec/gcc/x86_64-pc-linux-gnu/11.4.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --prefix=/home/gcc-releases/gcc-11-0615/
--disable-multilib --enable-languages=c,c++
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.4.1 20230615 (GCC)
*******************************************************************************
Command Lines:

/home/gcc-releases/gcc-11-0615/bin/gcc -I
/home/csmith_record/include/csmith-2.3.0/  -O3
-fno-aggressive-loop-optimizations -fno-align-functions -fno-align-jumps
-fno-align-labels -fno-align-loops -fno-allocation-dce
-fno-asynchronous-unwind-tables -fno-auto-inc-dec -fno-bit-tests
-fno-branch-count-reg -fno-caller-saves -fno-code-hoisting
-fno-combine-stack-adjustments -fno-compare-elim -fno-cprop-registers
-fno-crossjumping -fno-cse-follow-jumps -fno-dce -fno-defer-pop
-fno-delete-null-pointer-checks -fno-devirtualize
-fno-devirtualize-speculatively -fno-dse -fno-early-inlining
-fno-expensive-optimizations -fno-forward-propagate -fno-fp-int-builtin-inexact
-fno-function-cse -fno-gcse -fno-gcse-after-reload -fno-gcse-lm
-fno-guess-branch-probability -fno-hoist-adjacent-loads -fno-if-conversion
-fno-if-conversion2 -fno-indirect-inlining -fno-inline -fno-inline-atomics
-fno-inline-functions -fno-inline-functions-called-once
-fno-inline-small-functions -fno-ipa-bit-cp -fno-ipa-cp -fno-ipa-cp-clone
-fno-ipa-icf -fno-ipa-icf-functions -fno-ipa-icf-variables -fno-ipa-modref
-fno-ipa-profile -fno-ipa-pure-const -fno-ipa-ra -fno-ipa-reference
-fno-ipa-reference-addressable -fno-ipa-sra -fno-ipa-stack-alignment
-fno-ipa-vrp -fno-ira-hoist-pressure -fno-ira-share-save-slots
-fno-ira-share-spill-slots -fno-isolate-erroneous-paths-dereference -fno-ivopts
-fno-jump-tables -fno-lifetime-dse -fno-loop-interchange
-fno-loop-unroll-and-jam -fno-lra-remat -fno-math-errno
-fno-move-loop-invariants -fno-omit-frame-pointer -fno-optimize-sibling-calls
-fno-optimize-strlen -fno-partial-inlining -fno-peel-loops -fno-peephole
-fno-peephole2 -fno-plt -fno-predictive-commoning -fno-prefetch-loop-arrays
-fno-printf-return-value -fno-ree -fno-reg-struct-return -fno-rename-registers
-fno-reorder-blocks -fno-reorder-blocks-and-partition -fno-reorder-functions
-fno-rerun-cse-after-loop -fno-sched-critical-path-heuristic
-fno-sched-dep-count-heuristic -fno-sched-group-heuristic -fno-sched-interblock
-fno-sched-last-insn-heuristic -fno-sched-rank-heuristic -fno-sched-spec
-fno-sched-spec-insn-heuristic -fno-sched-stalled-insns-dep
-fno-schedule-fusion -fno-schedule-insns2 -fno-short-enums -fno-shrink-wrap
-fno-shrink-wrap-separate -fno-signed-zeros -fno-split-ivs-in-unroller
-fno-split-loops -fno-split-paths -fno-split-wide-types -fno-ssa-backprop
-fno-ssa-phiopt -fno-stdarg-opt -fno-store-merging -fno-strict-aliasing
-fno-strict-volatile-bitfields -fno-thread-jumps -fno-toplevel-reorder
-fno-trapping-math -fno-tree-bit-ccp -fno-tree-builtin-call-dce -fno-tree-ccp
-fno-tree-ch -fno-tree-coalesce-vars -fno-tree-copy-prop -fno-tree-cselim
-fno-tree-dce -fno-tree-dominator-opts -fno-tree-dse -fno-tree-forwprop
-fno-tree-fre -fno-tree-loop-distribute-patterns -fno-tree-loop-distribution
-fno-tree-loop-if-convert -fno-tree-loop-im -fno-tree-loop-ivcanon
-fno-tree-loop-optimize -fno-tree-loop-vectorize -fno-tree-partial-pre
-fno-tree-phiprop -fno-tree-pre -fno-tree-pta -fno-tree-reassoc
-fno-tree-scev-cprop -fno-tree-sink -fno-tree-slp-vectorize -fno-tree-slsr
-fno-tree-sra -fno-tree-switch-conversion -fno-tree-tail-merge -fno-tree-ter
-fno-tree-vrp -fno-unroll-completely-grow-size -fno-unswitch-loops
-fno-unwind-tables -fno-var-tracking -fno-var-tracking-assignments
-fno-version-loops-for-strides -fno-web -faggressive-loop-optimizations
-fno-align-functions -fno-align-jumps -fno-align-labels -fno-align-loops
-fallocation-dce -fasynchronous-unwind-tables -fauto-inc-dec -fbit-tests
-fbranch-count-reg -fno-caller-saves -fno-code-hoisting
-fcombine-stack-adjustments -fcompare-elim -fno-cprop-registers
-fno-crossjumping -fno-cse-follow-jumps -fno-dce -fno-defer-pop
-fdelete-null-pointer-checks -fno-devirtualize -fdevirtualize-speculatively
-fdse -fno-early-inlining -fexpensive-optimizations -fno-forward-propagate
-fno-fp-int-builtin-inexact -ffunction-cse -fno-gcse -fgcse-after-reload
-fgcse-lm -fguess-branch-probability -fno-hoist-adjacent-loads -fif-conversion
-fif-conversion2 -findirect-inlining -fno-inline -fno-inline-atomics
-fno-inline-functions -finline-functions-called-once
-fno-inline-small-functions -fno-ipa-bit-cp -fno-ipa-cp -fno-ipa-cp-clone
-fipa-icf -fno-ipa-icf-functions -fipa-icf-variables -fipa-modref -fipa-profile
-fno-ipa-pure-const -fipa-ra -fipa-reference -fipa-reference-addressable
-fipa-sra -fno-ipa-stack-alignment -fipa-vrp -fno-ira-hoist-pressure
-fira-share-save-slots -fno-ira-share-spill-slots
-fno-isolate-erroneous-paths-dereference -fivopts -fno-jump-tables
-flifetime-dse -fno-loop-interchange -fno-loop-unroll-and-jam -flra-remat
-fno-math-errno -fmove-loop-invariants -fomit-frame-pointer
-fno-optimize-sibling-calls -fno-optimize-strlen -fpartial-inlining
-fno-peel-loops -fpeephole -fpeephole2 -fplt -fno-predictive-commoning
-fprefetch-loop-arrays -fno-printf-return-value -free -fno-reg-struct-return
-fno-rename-registers -fno-reorder-blocks -freorder-blocks-and-partition
-fno-reorder-functions -fno-rerun-cse-after-loop
-fsched-critical-path-heuristic -fno-sched-dep-count-heuristic
-fno-sched-group-heuristic -fsched-interblock -fno-sched-last-insn-heuristic
-fno-sched-rank-heuristic -fno-sched-spec -fno-sched-spec-insn-heuristic
-fsched-stalled-insns-dep -fno-schedule-fusion -fno-schedule-insns2
-fshort-enums -fno-shrink-wrap -fshrink-wrap-separate -fno-signed-zeros
-fsplit-ivs-in-unroller -fsplit-loops -fno-split-paths -fno-split-wide-types
-fssa-backprop -fno-ssa-phiopt -fno-stdarg-opt -fstore-merging
-fno-strict-aliasing -fno-strict-volatile-bitfields -fno-thread-jumps
-ftoplevel-reorder -ftrapping-math -fno-tree-bit-ccp -ftree-builtin-call-dce
-fno-tree-ccp -ftree-ch -fno-tree-coalesce-vars -fno-tree-copy-prop
-ftree-cselim -fno-tree-dce -ftree-dominator-opts -fno-tree-dse -ftree-forwprop
-fno-tree-fre -fno-tree-loop-distribute-patterns -fno-tree-loop-distribution
-fno-tree-loop-if-convert -fno-tree-loop-im -fno-tree-loop-ivcanon
-fno-tree-loop-optimize -fno-tree-loop-vectorize -ftree-partial-pre
-fno-tree-phiprop -ftree-pre -fno-tree-pta -fno-tree-reassoc
-fno-tree-scev-cprop -fno-tree-sink -fno-tree-slp-vectorize -fno-tree-slsr
-ftree-sra -fno-tree-switch-conversion -fno-tree-tail-merge -ftree-ter
-ftree-vrp -fno-unroll-completely-grow-size -funswitch-loops -funwind-tables
-fvar-tracking -fno-var-tracking-assignments -fno-version-loops-for-strides
-fweb -save-temps s.c -o s.o 2>s_error.txt

# ./s.o
Segmentation fault

# /home/gcc-releases/gcc-11-0615/bin/gcc -I
/home/csmith_record/include/csmith-2.3.0/  -O3 s.c -o s.o

# ./s.o
checksum = C3B59C18

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

* [Bug c/110282] Segmentation fault with specific optimizations
  2023-06-16 11:01 [Bug c/110282] New: Segmentation fault with specific optimizations 19373742 at buaa dot edu.cn
@ 2023-06-16 11:02 ` 19373742 at buaa dot edu.cn
  2023-06-17  6:52 ` [Bug middle-end/110282] " xry111 at gcc dot gnu.org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: 19373742 at buaa dot edu.cn @ 2023-06-16 11:02 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from CTC <19373742 at buaa dot edu.cn> ---
Created attachment 55344
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55344&action=edit
The compiler output

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

* [Bug middle-end/110282] Segmentation fault with specific optimizations
  2023-06-16 11:01 [Bug c/110282] New: Segmentation fault with specific optimizations 19373742 at buaa dot edu.cn
  2023-06-16 11:02 ` [Bug c/110282] " 19373742 at buaa dot edu.cn
@ 2023-06-17  6:52 ` xry111 at gcc dot gnu.org
  2023-06-19  6:43 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: xry111 at gcc dot gnu.org @ 2023-06-17  6:52 UTC (permalink / raw)
  To: gcc-bugs

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

Xi Ruoyao <xry111 at gcc dot gnu.org> changed:

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

--- Comment #2 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
Not reproducible with GCC 13.1 too.

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

* [Bug middle-end/110282] Segmentation fault with specific optimizations
  2023-06-16 11:01 [Bug c/110282] New: Segmentation fault with specific optimizations 19373742 at buaa dot edu.cn
  2023-06-16 11:02 ` [Bug c/110282] " 19373742 at buaa dot edu.cn
  2023-06-17  6:52 ` [Bug middle-end/110282] " xry111 at gcc dot gnu.org
@ 2023-06-19  6:43 ` rguenth at gcc dot gnu.org
  2023-06-19 10:05 ` 19373742 at buaa dot edu.cn
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-06-19  6:43 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |10.4.0, 11.1.0, 11.3.0
      Known to work|                            |12.3.0, 13.1.0

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed behavior also with GCC 10, with -fno-bit-tests -fbit-tests
-fno-ipa-modref -fipa-modref removed.

Can you please adjust your script to not pointlessly increase the command line
by adding both positive and neagtive variants of an option?  Can you please try
to reduce the set of arbitrary options that reproduce the issue?

25kB garbage testcases are painfully enough to even look at.  Other fuzzing
people manage to file bugs with < 100 lines of code and a command line that
remotely makes sense.

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

* [Bug middle-end/110282] Segmentation fault with specific optimizations
  2023-06-16 11:01 [Bug c/110282] New: Segmentation fault with specific optimizations 19373742 at buaa dot edu.cn
                   ` (2 preceding siblings ...)
  2023-06-19  6:43 ` rguenth at gcc dot gnu.org
@ 2023-06-19 10:05 ` 19373742 at buaa dot edu.cn
  2023-06-19 21:57 ` pinskia at gcc dot gnu.org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: 19373742 at buaa dot edu.cn @ 2023-06-19 10:05 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from CTC <19373742 at buaa dot edu.cn> ---
(In reply to Richard Biener from comment #3)
> Confirmed behavior also with GCC 10, with -fno-bit-tests -fbit-tests
> -fno-ipa-modref -fipa-modref removed.
> 
> Can you please adjust your script to not pointlessly increase the command
> line
> by adding both positive and neagtive variants of an option?  Can you please
> try to reduce the set of arbitrary options that reproduce the issue?
> 
> 25kB garbage testcases are painfully enough to even look at.  Other fuzzing
> people manage to file bugs with < 100 lines of code and a command line that
> remotely makes sense.

Sorry for the long command lines. This issue can be reproduced with -O3
-fno-dce -fno-ipa-cp -fno-tree-dce -fno-tree-sink.

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

* [Bug middle-end/110282] Segmentation fault with specific optimizations
  2023-06-16 11:01 [Bug c/110282] New: Segmentation fault with specific optimizations 19373742 at buaa dot edu.cn
                   ` (3 preceding siblings ...)
  2023-06-19 10:05 ` 19373742 at buaa dot edu.cn
@ 2023-06-19 21:57 ` pinskia at gcc dot gnu.org
  2023-06-30  9:25 ` 19373742 at buaa dot edu.cn
  2023-06-30  9:30 ` xry111 at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-06-19 21:57 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note I suspect r12-248-gb58dc0b803057c0e6032e0d9b made the problem latent in
GCC 12+. But turning off DSE in GCC 12.1.0 does not reproduce the bug ....

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

* [Bug middle-end/110282] Segmentation fault with specific optimizations
  2023-06-16 11:01 [Bug c/110282] New: Segmentation fault with specific optimizations 19373742 at buaa dot edu.cn
                   ` (4 preceding siblings ...)
  2023-06-19 21:57 ` pinskia at gcc dot gnu.org
@ 2023-06-30  9:25 ` 19373742 at buaa dot edu.cn
  2023-06-30  9:30 ` xry111 at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: 19373742 at buaa dot edu.cn @ 2023-06-30  9:25 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from CTC <19373742 at buaa dot edu.cn> ---
Another related and smaller reproducer:

# cat tmp.i
main() {
  int *a = 0;
  int b = *a;
}

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

* [Bug middle-end/110282] Segmentation fault with specific optimizations
  2023-06-16 11:01 [Bug c/110282] New: Segmentation fault with specific optimizations 19373742 at buaa dot edu.cn
                   ` (5 preceding siblings ...)
  2023-06-30  9:25 ` 19373742 at buaa dot edu.cn
@ 2023-06-30  9:30 ` xry111 at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: xry111 at gcc dot gnu.org @ 2023-06-30  9:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
(In reply to CTC from comment #6)
> Another related and smaller reproducer:
> 
> # cat tmp.i
> main() {
>   int *a = 0;
>   int b = *a;
> }

No, this is an undefined behavior and the compiler is allowed to generate code
to crash.

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

end of thread, other threads:[~2023-06-30  9:30 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-16 11:01 [Bug c/110282] New: Segmentation fault with specific optimizations 19373742 at buaa dot edu.cn
2023-06-16 11:02 ` [Bug c/110282] " 19373742 at buaa dot edu.cn
2023-06-17  6:52 ` [Bug middle-end/110282] " xry111 at gcc dot gnu.org
2023-06-19  6:43 ` rguenth at gcc dot gnu.org
2023-06-19 10:05 ` 19373742 at buaa dot edu.cn
2023-06-19 21:57 ` pinskia at gcc dot gnu.org
2023-06-30  9:25 ` 19373742 at buaa dot edu.cn
2023-06-30  9:30 ` xry111 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).