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
|
// 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: }
|