[Bug tree-optimization/106888] [RISCV] Negative optimization that excess andi instructions are generated in gcc.dg/pr90838.c

2022-09-08 Thread shihua at iscas dot ac.cn via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106888

--- Comment #1 from shihua at iscas dot ac.cn  ---
This patch is 
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=c23a9c87cc62bd177fd0d4db6ad34b34e1b9a31f

[Bug regression/106888] New: [RISCV] Excess andi instructions are generated in gcc.dg/pr90838.c

2022-09-08 Thread shihua at iscas dot ac.cn via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106888

Bug ID: 106888
   Summary: [RISCV] Excess andi instructions are generated  in
gcc.dg/pr90838.c
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: regression
  Assignee: unassigned at gcc dot gnu.org
  Reporter: shihua at iscas dot ac.cn
  Target Milestone: ---

After this patch(
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=c23a9c87cc62bd177fd0d4db6ad34b34e1b9a31f),gcc.dg/pr90838.c
failed.

Before:


.attribute arch, "rv64i2p0_m2p0_a2p0_f2p0_d2p0_c2p0_zbb1p0"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text

.align  1
.globl  ctz2
.type   ctz2, @function
ctz2:
ctzwa0,a0
ret
.size   ctz2, .-ctz2
.align  1
.globl  ctz3
.type   ctz3, @function
ctz3:
ctzwa0,a0
ret
.size   ctz3, .-ctz3


After:

.attribute arch, "rv64i2p0_m2p0_a2p0_f2p0_d2p0_c2p0_zbb1p0"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.align  1
.globl  ctz1
.type   ctz1, @function
ctz2:
ctzwa0,a0
andia0,a0,127
ret
.size   ctz2, .-ctz2
.align  1
.globl  ctz3
.type   ctz3, @function
ctz3:
ctzwa0,a0
andia0,a0,127
ret
.size   ctz3, .-ctz3

[Bug c/103872] New: testcase fail in gcc.dg/analyzer/pr103526.c on riscv64-unknown-elf-gcc

2021-12-30 Thread shihua at iscas dot ac.cn via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103872

Bug ID: 103872
   Summary: testcase fail in gcc.dg/analyzer/pr103526.c on
riscv64-unknown-elf-gcc
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: shihua at iscas dot ac.cn
  Target Milestone: ---

analyzer can not properly detects the non-free'd pointer as escaping via the
return value in riscv*-**-gcc



riscv64-unknown-elf-gcc -S -fanalyzer -Wanalyzer-too-complex
-fanalyzer-call-summaries riscv-gcc/gcc/testsuite/gcc.dg/analyzer/pr103526.c
riscv-gcc/gcc/testsuite/gcc.dg/analyzer/pr103526.c: In function 'game_new':
riscv-gcc/gcc/testsuite/gcc.dg/analyzer/pr103526.c:31:1: warning: leak of
'tmp.word_state' [CWE-401] [-Wanalyzer-malloc-leak]
   31 | } /* { dg-bogus "leak" } */
  | ^
  'game_new': events 1-7
|
|   20 | if ((tmp.word_state = malloc(wordlen+1)) == NULL)
|  |~  ^
|  ||  |
|  ||  (1) allocated here
|  |(2) assuming 'tmp.word_state' is non-NULL
|  |(3) following 'false' branch...
|   21 | goto err;
|   22 | if ((rval = malloc(sizeof(*rval))) == NULL)
|  |~~
|  |||
|  ||(4) ...to here
|  |(5) following 'false' branch (when 'rval' is
non-NULL)...
|   23 | goto err;
|   24 | memcpy(rval, , sizeof(*rval));
|  | ~
|  | |
|  | (6) ...to here
|..
|   31 | } /* { dg-bogus "leak" } */
|  | ~
|  | |
|  | (7) 'tmp.word_state' leaks here; was allocated at (1)
|