File: out-of-bounds-diagram-1-debug.c

package info (click to toggle)
gcc-arm-none-eabi 15%3A14.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,099,328 kB
  • sloc: cpp: 3,627,108; ansic: 2,571,498; ada: 834,230; f90: 235,082; makefile: 79,231; asm: 74,984; xml: 51,692; exp: 39,736; sh: 33,298; objc: 15,629; python: 15,069; fortran: 14,429; pascal: 7,003; awk: 5,070; perl: 3,106; ml: 285; lisp: 253; lex: 204; haskell: 135
file content (40 lines) | stat: -rw-r--r-- 2,041 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* Test of -fanalyzer-debug-text-art.  */

/* { dg-additional-options "-fdiagnostics-text-art-charset=ascii -fanalyzer-debug-text-art" } */

#include <stdint.h>

int32_t arr[10];

void int_arr_write_element_after_end_off_by_one(int32_t x)
{
  arr[10] = x;  /* { dg-line line } */
}
/* { dg-warning "buffer overflow" "warning" { target *-*-* } line } */
/* { dg-message "valid subscripts for 'arr' are '\\\[0\\\]' to '\\\[9\\\]'" "valid subscript note" { target *-*-* } line } */

/* { dg-begin-multiline-output "" }

  +---------+-----------+-----------+---+--------------------------------+
  |   tc0   |    tc1    |    tc2    |tc3|              tc4               |
  +---------+-----------+-----------+---+--------------------------------+
  |bytes 0-3|bytes 4-35 |bytes 36-39|   |          bytes 40-43           |
  +---------+-----------+-----------+   +--------------------------------+
                                        +--------------------------------+
                                        |write from 'x' (type: 'int32_t')|
                                        +--------------------------------+
                                                        |
                                                        |
                                                        v
  +---------+-----------+-----------+   +--------------------------------+
  |   [0]   |    ...    |    [9]    |   |                                |
  +---------+-----------+-----------+   |       after valid range        |
  |   'arr' (type: 'int32_t[10]')   |   |                                |
  +---------------------------------+   +--------------------------------+
  |~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~|   |~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~|
                   |                                    |
         +---------+--------+                 +---------+---------+
         |capacity: 40 bytes|                 |overflow of 4 bytes|
         +------------------+                 +-------------------+

   { dg-end-multiline-output "" } */