mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 17:16:04 +00:00

As a side effect, introduce AtomicExpr::getOpAsString() to dump the AtomicOp string representation. This is a recommit with the ranges unchecked to cope with platform-specific values. Differential Revision: https://reviews.llvm.org/D158558
61 lines
1.6 KiB
C
61 lines
1.6 KiB
C
// 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: }
|