summaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/diagnostic-format-json-5.c
blob: 86f8c5fb3746905dd5ff4d992daa69daf4b55edc (plain)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/* { dg-do compile } */
/* { dg-options "-fdiagnostics-format=json" } */

struct s { int color; };

int test (struct s *ptr)
{
  return ptr->colour;
}

/* Verify fix-it hints.

   Use dg-regexp to consume the JSON output from start to
   finish, relying on the ordering of the keys.
   The following uses indentation to visualize the structure
   of the JSON (although the actual output is all on one line).

  { dg-regexp {\[} }
    { dg-regexp {\{} }
     { dg-regexp {"kind": "error"} }
     { dg-regexp {, "message": "'struct s' has no member named 'colour'; did you mean 'color'\?"} }
     { dg-regexp {, "children": \[\]} }
     { dg-regexp {, "column-origin": 1} }
     { dg-regexp {, "locations": } }
       { dg-regexp {\[} }
         { dg-regexp {\{} }
           { dg-regexp {"caret": } }
             { dg-regexp {\{} }
               { dg-regexp {"file": "[^\n\r"]*diagnostic-format-json-5.c"} }
               { dg-regexp {, "line": 8} }
               { dg-regexp {, "display-column": 15} }
               { dg-regexp {, "byte-column": 15} }
               { dg-regexp {, "column": 15} }
             { dg-regexp {\}} }
           { dg-regexp {, "finish": } }
             { dg-regexp {\{} }
               { dg-regexp {"file": "[^\n\r"]*diagnostic-format-json-5.c"} }
               { dg-regexp {, "line": 8} }
               { dg-regexp {, "display-column": 20} }
               { dg-regexp {, "byte-column": 20} }
               { dg-regexp {, "column": 20} }
             { dg-regexp {\}} }
           { dg-regexp {\}} }
         { dg-regexp {\]} }
       { dg-regexp {, "fixits": } }
       { dg-regexp {\[} }
         { dg-regexp {\{} }
           { dg-regexp {"start": } }
             { dg-regexp {\{} }
               { dg-regexp {"file": "[^\n\r"]*diagnostic-format-json-5.c"} }
               { dg-regexp {, "line": 8} }
               { dg-regexp {, "display-column": 15} }
               { dg-regexp {, "byte-column": 15} }
               { dg-regexp {, "column": 15} }
             { dg-regexp {\}} }
           { dg-regexp {, "next": } }
             { dg-regexp {\{} }
               { dg-regexp {"file": "[^\n\r"]*diagnostic-format-json-5.c"} }
               { dg-regexp {, "line": 8} }
               { dg-regexp {, "display-column": 21} }
               { dg-regexp {, "byte-column": 21} }
               { dg-regexp {, "column": 21} }
             { dg-regexp {\}} }
           { dg-regexp {, "string": "color"} }
         { dg-regexp {\}} }
       { dg-regexp {\]} }
     { dg-regexp {, "escape-source": false\}} }
   { dg-regexp {\]} }  */