brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.7 KiB · 287fa24 Raw
398 lines · c
1// RUN: rm -rf %t2// RUN: split-file %s %t3// RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}@g" \4// RUN: %t/reference.output.json.in >> %t/reference.output.json5// RUN: %clang -extract-api --pretty-sgf --product-name=GlobalRecord -target arm64-apple-macosx \6// RUN: %t/input.h -o %t/output.json | FileCheck -allow-empty %s7 8// Generator version is not consistent across test runs, normalize it.9// RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \10// RUN: %t/output.json >> %t/output-normalized.json11// RUN: diff %t/reference.output.json %t/output-normalized.json12 13// CHECK-NOT: error:14// CHECK-NOT: warning:15 16//--- input.h17int num;18 19/**20 * \brief Add two numbers.21 * \param [in]  x   A number.22 * \param [in]  y   Another number.23 * \param [out] res The result of x + y.24 */25void add(const int x, const int y, int *res);26 27char unavailable __attribute__((unavailable));28 29//--- reference.output.json.in30{31  "metadata": {32    "formatVersion": {33      "major": 0,34      "minor": 5,35      "patch": 336    },37    "generator": "?"38  },39  "module": {40    "name": "GlobalRecord",41    "platform": {42      "architecture": "arm64",43      "operatingSystem": {44        "minimumVersion": {45          "major": 11,46          "minor": 0,47          "patch": 048        },49        "name": "macosx"50      },51      "vendor": "apple"52    }53  },54  "relationships": [],55  "symbols": [56    {57      "accessLevel": "public",58      "declarationFragments": [59        {60          "kind": "typeIdentifier",61          "preciseIdentifier": "c:I",62          "spelling": "int"63        },64        {65          "kind": "text",66          "spelling": " "67        },68        {69          "kind": "identifier",70          "spelling": "num"71        },72        {73          "kind": "text",74          "spelling": ";"75        }76      ],77      "identifier": {78        "interfaceLanguage": "c",79        "precise": "c:@num"80      },81      "kind": {82        "displayName": "Global Variable",83        "identifier": "c.var"84      },85      "location": {86        "position": {87          "character": 4,88          "line": 089        },90        "uri": "file://INPUT_DIR/input.h"91      },92      "names": {93        "navigator": [94          {95            "kind": "identifier",96            "spelling": "num"97          }98        ],99        "subHeading": [100          {101            "kind": "identifier",102            "spelling": "num"103          }104        ],105        "title": "num"106      },107      "pathComponents": [108        "num"109      ]110    },111    {112      "accessLevel": "public",113      "declarationFragments": [114        {115          "kind": "typeIdentifier",116          "preciseIdentifier": "c:v",117          "spelling": "void"118        },119        {120          "kind": "text",121          "spelling": " "122        },123        {124          "kind": "identifier",125          "spelling": "add"126        },127        {128          "kind": "text",129          "spelling": "("130        },131        {132          "kind": "keyword",133          "spelling": "const"134        },135        {136          "kind": "text",137          "spelling": " "138        },139        {140          "kind": "typeIdentifier",141          "preciseIdentifier": "c:I",142          "spelling": "int"143        },144        {145          "kind": "text",146          "spelling": " "147        },148        {149          "kind": "internalParam",150          "spelling": "x"151        },152        {153          "kind": "text",154          "spelling": ", "155        },156        {157          "kind": "keyword",158          "spelling": "const"159        },160        {161          "kind": "text",162          "spelling": " "163        },164        {165          "kind": "typeIdentifier",166          "preciseIdentifier": "c:I",167          "spelling": "int"168        },169        {170          "kind": "text",171          "spelling": " "172        },173        {174          "kind": "internalParam",175          "spelling": "y"176        },177        {178          "kind": "text",179          "spelling": ", "180        },181        {182          "kind": "typeIdentifier",183          "preciseIdentifier": "c:I",184          "spelling": "int"185        },186        {187          "kind": "text",188          "spelling": " *"189        },190        {191          "kind": "internalParam",192          "spelling": "res"193        },194        {195          "kind": "text",196          "spelling": ");"197        }198      ],199      "docComment": {200        "lines": [201          {202            "range": {203              "end": {204                "character": 3,205                "line": 2206              },207              "start": {208                "character": 3,209                "line": 2210              }211            },212            "text": ""213          },214          {215            "range": {216              "end": {217                "character": 26,218                "line": 3219              },220              "start": {221                "character": 2,222                "line": 3223              }224            },225            "text": " \\brief Add two numbers."226          },227          {228            "range": {229              "end": {230                "character": 29,231                "line": 4232              },233              "start": {234                "character": 2,235                "line": 4236              }237            },238            "text": " \\param [in]  x   A number."239          },240          {241            "range": {242              "end": {243                "character": 35,244                "line": 5245              },246              "start": {247                "character": 2,248                "line": 5249              }250            },251            "text": " \\param [in]  y   Another number."252          },253          {254            "range": {255              "end": {256                "character": 40,257                "line": 6258              },259              "start": {260                "character": 2,261                "line": 6262              }263            },264            "text": " \\param [out] res The result of x + y."265          },266          {267            "range": {268              "end": {269                "character": 3,270                "line": 7271              },272              "start": {273                "character": 0,274                "line": 7275              }276            },277            "text": " "278          }279        ]280      },281      "functionSignature": {282        "parameters": [283          {284            "declarationFragments": [285              {286                "kind": "keyword",287                "spelling": "const"288              },289              {290                "kind": "text",291                "spelling": " "292              },293              {294                "kind": "typeIdentifier",295                "preciseIdentifier": "c:I",296                "spelling": "int"297              },298              {299                "kind": "text",300                "spelling": " "301              },302              {303                "kind": "internalParam",304                "spelling": "x"305              }306            ],307            "name": "x"308          },309          {310            "declarationFragments": [311              {312                "kind": "keyword",313                "spelling": "const"314              },315              {316                "kind": "text",317                "spelling": " "318              },319              {320                "kind": "typeIdentifier",321                "preciseIdentifier": "c:I",322                "spelling": "int"323              },324              {325                "kind": "text",326                "spelling": " "327              },328              {329                "kind": "internalParam",330                "spelling": "y"331              }332            ],333            "name": "y"334          },335          {336            "declarationFragments": [337              {338                "kind": "typeIdentifier",339                "preciseIdentifier": "c:I",340                "spelling": "int"341              },342              {343                "kind": "text",344                "spelling": " *"345              },346              {347                "kind": "internalParam",348                "spelling": "res"349              }350            ],351            "name": "res"352          }353        ],354        "returns": [355          {356            "kind": "typeIdentifier",357            "preciseIdentifier": "c:v",358            "spelling": "void"359          }360        ]361      },362      "identifier": {363        "interfaceLanguage": "c",364        "precise": "c:@F@add"365      },366      "kind": {367        "displayName": "Function",368        "identifier": "c.func"369      },370      "location": {371        "position": {372          "character": 5,373          "line": 8374        },375        "uri": "file://INPUT_DIR/input.h"376      },377      "names": {378        "navigator": [379          {380            "kind": "identifier",381            "spelling": "add"382          }383        ],384        "subHeading": [385          {386            "kind": "identifier",387            "spelling": "add"388          }389        ],390        "title": "add"391      },392      "pathComponents": [393        "add"394      ]395    }396  ]397}398