// RUN: %clang_cc1 -triple x86_64-pc-linux -Wno-unused-value -ast-dump=json %s | FileCheck %s
int foo(int * ptr) {
return __atomic_load_n(ptr, __ATOMIC_SEQ_CST);
}
// NOTE: CHECK lines have *not* been autogenerated by gen_ast_dump_json_test.py
// as its output is not portable for AtomicExpr across platforms. Instead rely
// on loose CHECKS.
// CHECK-NOT: {{^}}Dumping
// CHECK: "kind": "AtomicExpr",
// CHECK: "type": {
// CHECK: "qualType": "int"
// CHECK: },
// CHECK: "valueCategory": "prvalue",
// CHECK: "name": "__atomic_load_n",
// CHECK: "inner": [
// CHECK: {
// CHECK: "id": "0x{{.*}}",
// CHECK: "kind": "ImplicitCastExpr",
// CHECK: },
// CHECK: "type": {
// CHECK: "qualType": "int *"
// CHECK: },
// CHECK: "valueCategory": "prvalue",
// CHECK: "castKind": "LValueToRValue",
// CHECK: "inner": [
// CHECK: {
// CHECK: "id": "0x{{.*}}",
// CHECK: "kind": "DeclRefExpr",
// CHECK: },
// CHECK: "type": {
// CHECK: "qualType": "int *"
// CHECK: },
// CHECK: "valueCategory": "lvalue",
// CHECK: "referencedDecl": {
// CHECK: "id": "0x{{.*}}",
// CHECK: "kind": "ParmVarDecl",
// CHECK: "name": "ptr",
// CHECK: "type": {
// CHECK: "qualType": "int *"
// CHECK: }
// CHECK: }
// CHECK: }
// CHECK: ]
// CHECK: },
// CHECK: {
// CHECK: "id": "0x{{.*}}",
// CHECK: "kind": "IntegerLiteral",
// CHECK: },
// CHECK: "type": {
// CHECK: "qualType": "int"
// CHECK: },
// CHECK: "valueCategory": "prvalue",
// CHECK: "value": "5"
// CHECK: }
// CHECK: ]
// CHECK: }