brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.3 KiB · c2ab154 Raw
486 lines · c
1// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck %s2 3float func_16(float x, float y) {4  #pragma STDC FENV_ROUND FE_TOWARDZERO5  if (x < 0) {6    #pragma STDC FENV_ROUND FE_UPWARD7    return x - y;8  }9  return x + y;10}11 12// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py13// using --filters=CompoundStmt14 15 16// CHECK-NOT: {{^}}Dumping17// CHECK:  "kind": "CompoundStmt",18// CHECK-NEXT:  "range": {19// CHECK-NEXT:   "begin": {20// CHECK-NEXT:    "offset": 116,21// CHECK-NEXT:    "col": 33,22// CHECK-NEXT:    "tokLen": 123// CHECK-NEXT:   },24// CHECK-NEXT:   "end": {25// CHECK-NEXT:    "offset": 249,26// CHECK-NEXT:    "line": 10,27// CHECK-NEXT:    "col": 1,28// CHECK-NEXT:    "tokLen": 129// CHECK-NEXT:   }30// CHECK-NEXT:  },31// CHECK-NEXT:  "fpoptions": {32// CHECK-NEXT:   "ConstRoundingMode": 033// CHECK-NEXT:  },34// CHECK-NEXT:  "inner": [35// CHECK-NEXT:   {36// CHECK-NEXT:    "id": "0x{{.*}}",37// CHECK-NEXT:    "kind": "IfStmt",38// CHECK-NEXT:    "range": {39// CHECK-NEXT:     "begin": {40// CHECK-NEXT:      "offset": 160,41// CHECK-NEXT:      "line": 5,42// CHECK-NEXT:      "col": 3,43// CHECK-NEXT:      "tokLen": 244// CHECK-NEXT:     },45// CHECK-NEXT:     "end": {46// CHECK-NEXT:      "offset": 231,47// CHECK-NEXT:      "line": 8,48// CHECK-NEXT:      "col": 3,49// CHECK-NEXT:      "tokLen": 150// CHECK-NEXT:     }51// CHECK-NEXT:    },52// CHECK-NEXT:    "inner": [53// CHECK-NEXT:     {54// CHECK-NEXT:      "id": "0x{{.*}}",55// CHECK-NEXT:      "kind": "BinaryOperator",56// CHECK-NEXT:      "range": {57// CHECK-NEXT:       "begin": {58// CHECK-NEXT:        "offset": 164,59// CHECK-NEXT:        "line": 5,60// CHECK-NEXT:        "col": 7,61// CHECK-NEXT:        "tokLen": 162// CHECK-NEXT:       },63// CHECK-NEXT:       "end": {64// CHECK-NEXT:        "offset": 168,65// CHECK-NEXT:        "col": 11,66// CHECK-NEXT:        "tokLen": 167// CHECK-NEXT:       }68// CHECK-NEXT:      },69// CHECK-NEXT:      "type": {70// CHECK-NEXT:       "qualType": "int"71// CHECK-NEXT:      },72// CHECK-NEXT:      "valueCategory": "prvalue",73// CHECK-NEXT:      "opcode": "<",74// CHECK-NEXT:      "inner": [75// CHECK-NEXT:       {76// CHECK-NEXT:        "id": "0x{{.*}}",77// CHECK-NEXT:        "kind": "ImplicitCastExpr",78// CHECK-NEXT:        "range": {79// CHECK-NEXT:         "begin": {80// CHECK-NEXT:          "offset": 164,81// CHECK-NEXT:          "col": 7,82// CHECK-NEXT:          "tokLen": 183// CHECK-NEXT:         },84// CHECK-NEXT:         "end": {85// CHECK-NEXT:          "offset": 164,86// CHECK-NEXT:          "col": 7,87// CHECK-NEXT:          "tokLen": 188// CHECK-NEXT:         }89// CHECK-NEXT:        },90// CHECK-NEXT:        "type": {91// CHECK-NEXT:         "qualType": "float"92// CHECK-NEXT:        },93// CHECK-NEXT:        "valueCategory": "prvalue",94// CHECK-NEXT:        "castKind": "LValueToRValue",95// CHECK-NEXT:        "inner": [96// CHECK-NEXT:         {97// CHECK-NEXT:          "id": "0x{{.*}}",98// CHECK-NEXT:          "kind": "DeclRefExpr",99// CHECK-NEXT:          "range": {100// CHECK-NEXT:           "begin": {101// CHECK-NEXT:            "offset": 164,102// CHECK-NEXT:            "col": 7,103// CHECK-NEXT:            "tokLen": 1104// CHECK-NEXT:           },105// CHECK-NEXT:           "end": {106// CHECK-NEXT:            "offset": 164,107// CHECK-NEXT:            "col": 7,108// CHECK-NEXT:            "tokLen": 1109// CHECK-NEXT:           }110// CHECK-NEXT:          },111// CHECK-NEXT:          "type": {112// CHECK-NEXT:           "qualType": "float"113// CHECK-NEXT:          },114// CHECK-NEXT:          "valueCategory": "lvalue",115// CHECK-NEXT:          "referencedDecl": {116// CHECK-NEXT:           "id": "0x{{.*}}",117// CHECK-NEXT:           "kind": "ParmVarDecl",118// CHECK-NEXT:           "name": "x",119// CHECK-NEXT:           "type": {120// CHECK-NEXT:            "qualType": "float"121// CHECK-NEXT:           }122// CHECK-NEXT:          }123// CHECK-NEXT:         }124// CHECK-NEXT:        ]125// CHECK-NEXT:       },126// CHECK-NEXT:       {127// CHECK-NEXT:        "id": "0x{{.*}}",128// CHECK-NEXT:        "kind": "ImplicitCastExpr",129// CHECK-NEXT:        "range": {130// CHECK-NEXT:         "begin": {131// CHECK-NEXT:          "offset": 168,132// CHECK-NEXT:          "col": 11,133// CHECK-NEXT:          "tokLen": 1134// CHECK-NEXT:         },135// CHECK-NEXT:         "end": {136// CHECK-NEXT:          "offset": 168,137// CHECK-NEXT:          "col": 11,138// CHECK-NEXT:          "tokLen": 1139// CHECK-NEXT:         }140// CHECK-NEXT:        },141// CHECK-NEXT:        "type": {142// CHECK-NEXT:         "qualType": "float"143// CHECK-NEXT:        },144// CHECK-NEXT:        "valueCategory": "prvalue",145// CHECK-NEXT:        "castKind": "IntegralToFloating",146// CHECK-NEXT:        "inner": [147// CHECK-NEXT:         {148// CHECK-NEXT:          "id": "0x{{.*}}",149// CHECK-NEXT:          "kind": "IntegerLiteral",150// CHECK-NEXT:          "range": {151// CHECK-NEXT:           "begin": {152// CHECK-NEXT:            "offset": 168,153// CHECK-NEXT:            "col": 11,154// CHECK-NEXT:            "tokLen": 1155// CHECK-NEXT:           },156// CHECK-NEXT:           "end": {157// CHECK-NEXT:            "offset": 168,158// CHECK-NEXT:            "col": 11,159// CHECK-NEXT:            "tokLen": 1160// CHECK-NEXT:           }161// CHECK-NEXT:          },162// CHECK-NEXT:          "type": {163// CHECK-NEXT:           "qualType": "int"164// CHECK-NEXT:          },165// CHECK-NEXT:          "valueCategory": "prvalue",166// CHECK-NEXT:          "value": "0"167// CHECK-NEXT:         }168// CHECK-NEXT:        ]169// CHECK-NEXT:       }170// CHECK-NEXT:      ]171// CHECK-NEXT:     },172// CHECK-NEXT:     {173// CHECK-NEXT:      "id": "0x{{.*}}",174// CHECK-NEXT:      "kind": "CompoundStmt",175// CHECK-NEXT:      "range": {176// CHECK-NEXT:       "begin": {177// CHECK-NEXT:        "offset": 171,178// CHECK-NEXT:        "col": 14,179// CHECK-NEXT:        "tokLen": 1180// CHECK-NEXT:       },181// CHECK-NEXT:       "end": {182// CHECK-NEXT:        "offset": 231,183// CHECK-NEXT:        "line": 8,184// CHECK-NEXT:        "col": 3,185// CHECK-NEXT:        "tokLen": 1186// CHECK-NEXT:       }187// CHECK-NEXT:      },188// CHECK-NEXT:      "fpoptions": {189// CHECK-NEXT:       "ConstRoundingMode": 2190// CHECK-NEXT:      },191// CHECK-NEXT:      "inner": [192// CHECK-NEXT:       {193// CHECK-NEXT:        "id": "0x{{.*}}",194// CHECK-NEXT:        "kind": "ReturnStmt",195// CHECK-NEXT:        "range": {196// CHECK-NEXT:         "begin": {197// CHECK-NEXT:          "offset": 215,198// CHECK-NEXT:          "line": 7,199// CHECK-NEXT:          "col": 5,200// CHECK-NEXT:          "tokLen": 6201// CHECK-NEXT:         },202// CHECK-NEXT:         "end": {203// CHECK-NEXT:          "offset": 226,204// CHECK-NEXT:          "col": 16,205// CHECK-NEXT:          "tokLen": 1206// CHECK-NEXT:         }207// CHECK-NEXT:        },208// CHECK-NEXT:        "inner": [209// CHECK-NEXT:         {210// CHECK-NEXT:          "id": "0x{{.*}}",211// CHECK-NEXT:          "kind": "BinaryOperator",212// CHECK-NEXT:          "range": {213// CHECK-NEXT:           "begin": {214// CHECK-NEXT:            "offset": 222,215// CHECK-NEXT:            "col": 12,216// CHECK-NEXT:            "tokLen": 1217// CHECK-NEXT:           },218// CHECK-NEXT:           "end": {219// CHECK-NEXT:            "offset": 226,220// CHECK-NEXT:            "col": 16,221// CHECK-NEXT:            "tokLen": 1222// CHECK-NEXT:           }223// CHECK-NEXT:          },224// CHECK-NEXT:          "type": {225// CHECK-NEXT:           "qualType": "float"226// CHECK-NEXT:          },227// CHECK-NEXT:          "valueCategory": "prvalue",228// CHECK-NEXT:          "opcode": "-",229// CHECK-NEXT:          "inner": [230// CHECK-NEXT:           {231// CHECK-NEXT:            "id": "0x{{.*}}",232// CHECK-NEXT:            "kind": "ImplicitCastExpr",233// CHECK-NEXT:            "range": {234// CHECK-NEXT:             "begin": {235// CHECK-NEXT:              "offset": 222,236// CHECK-NEXT:              "col": 12,237// CHECK-NEXT:              "tokLen": 1238// CHECK-NEXT:             },239// CHECK-NEXT:             "end": {240// CHECK-NEXT:              "offset": 222,241// CHECK-NEXT:              "col": 12,242// CHECK-NEXT:              "tokLen": 1243// CHECK-NEXT:             }244// CHECK-NEXT:            },245// CHECK-NEXT:            "type": {246// CHECK-NEXT:             "qualType": "float"247// CHECK-NEXT:            },248// CHECK-NEXT:            "valueCategory": "prvalue",249// CHECK-NEXT:            "castKind": "LValueToRValue",250// CHECK-NEXT:            "inner": [251// CHECK-NEXT:             {252// CHECK-NEXT:              "id": "0x{{.*}}",253// CHECK-NEXT:              "kind": "DeclRefExpr",254// CHECK-NEXT:              "range": {255// CHECK-NEXT:               "begin": {256// CHECK-NEXT:                "offset": 222,257// CHECK-NEXT:                "col": 12,258// CHECK-NEXT:                "tokLen": 1259// CHECK-NEXT:               },260// CHECK-NEXT:               "end": {261// CHECK-NEXT:                "offset": 222,262// CHECK-NEXT:                "col": 12,263// CHECK-NEXT:                "tokLen": 1264// CHECK-NEXT:               }265// CHECK-NEXT:              },266// CHECK-NEXT:              "type": {267// CHECK-NEXT:               "qualType": "float"268// CHECK-NEXT:              },269// CHECK-NEXT:              "valueCategory": "lvalue",270// CHECK-NEXT:              "referencedDecl": {271// CHECK-NEXT:               "id": "0x{{.*}}",272// CHECK-NEXT:               "kind": "ParmVarDecl",273// CHECK-NEXT:               "name": "x",274// CHECK-NEXT:               "type": {275// CHECK-NEXT:                "qualType": "float"276// CHECK-NEXT:               }277// CHECK-NEXT:              }278// CHECK-NEXT:             }279// CHECK-NEXT:            ]280// CHECK-NEXT:           },281// CHECK-NEXT:           {282// CHECK-NEXT:            "id": "0x{{.*}}",283// CHECK-NEXT:            "kind": "ImplicitCastExpr",284// CHECK-NEXT:            "range": {285// CHECK-NEXT:             "begin": {286// CHECK-NEXT:              "offset": 226,287// CHECK-NEXT:              "col": 16,288// CHECK-NEXT:              "tokLen": 1289// CHECK-NEXT:             },290// CHECK-NEXT:             "end": {291// CHECK-NEXT:              "offset": 226,292// CHECK-NEXT:              "col": 16,293// CHECK-NEXT:              "tokLen": 1294// CHECK-NEXT:             }295// CHECK-NEXT:            },296// CHECK-NEXT:            "type": {297// CHECK-NEXT:             "qualType": "float"298// CHECK-NEXT:            },299// CHECK-NEXT:            "valueCategory": "prvalue",300// CHECK-NEXT:            "castKind": "LValueToRValue",301// CHECK-NEXT:            "inner": [302// CHECK-NEXT:             {303// CHECK-NEXT:              "id": "0x{{.*}}",304// CHECK-NEXT:              "kind": "DeclRefExpr",305// CHECK-NEXT:              "range": {306// CHECK-NEXT:               "begin": {307// CHECK-NEXT:                "offset": 226,308// CHECK-NEXT:                "col": 16,309// CHECK-NEXT:                "tokLen": 1310// CHECK-NEXT:               },311// CHECK-NEXT:               "end": {312// CHECK-NEXT:                "offset": 226,313// CHECK-NEXT:                "col": 16,314// CHECK-NEXT:                "tokLen": 1315// CHECK-NEXT:               }316// CHECK-NEXT:              },317// CHECK-NEXT:              "type": {318// CHECK-NEXT:               "qualType": "float"319// CHECK-NEXT:              },320// CHECK-NEXT:              "valueCategory": "lvalue",321// CHECK-NEXT:              "referencedDecl": {322// CHECK-NEXT:               "id": "0x{{.*}}",323// CHECK-NEXT:               "kind": "ParmVarDecl",324// CHECK-NEXT:               "name": "y",325// CHECK-NEXT:               "type": {326// CHECK-NEXT:                "qualType": "float"327// CHECK-NEXT:               }328// CHECK-NEXT:              }329// CHECK-NEXT:             }330// CHECK-NEXT:            ]331// CHECK-NEXT:           }332// CHECK-NEXT:          ]333// CHECK-NEXT:         }334// CHECK-NEXT:        ]335// CHECK-NEXT:       }336// CHECK-NEXT:      ]337// CHECK-NEXT:     }338// CHECK-NEXT:    ]339// CHECK-NEXT:   },340// CHECK-NEXT:   {341// CHECK-NEXT:    "id": "0x{{.*}}",342// CHECK-NEXT:    "kind": "ReturnStmt",343// CHECK-NEXT:    "range": {344// CHECK-NEXT:     "begin": {345// CHECK-NEXT:      "offset": 235,346// CHECK-NEXT:      "line": 9,347// CHECK-NEXT:      "col": 3,348// CHECK-NEXT:      "tokLen": 6349// CHECK-NEXT:     },350// CHECK-NEXT:     "end": {351// CHECK-NEXT:      "offset": 246,352// CHECK-NEXT:      "col": 14,353// CHECK-NEXT:      "tokLen": 1354// CHECK-NEXT:     }355// CHECK-NEXT:    },356// CHECK-NEXT:    "inner": [357// CHECK-NEXT:     {358// CHECK-NEXT:      "id": "0x{{.*}}",359// CHECK-NEXT:      "kind": "BinaryOperator",360// CHECK-NEXT:      "range": {361// CHECK-NEXT:       "begin": {362// CHECK-NEXT:        "offset": 242,363// CHECK-NEXT:        "col": 10,364// CHECK-NEXT:        "tokLen": 1365// CHECK-NEXT:       },366// CHECK-NEXT:       "end": {367// CHECK-NEXT:        "offset": 246,368// CHECK-NEXT:        "col": 14,369// CHECK-NEXT:        "tokLen": 1370// CHECK-NEXT:       }371// CHECK-NEXT:      },372// CHECK-NEXT:      "type": {373// CHECK-NEXT:       "qualType": "float"374// CHECK-NEXT:      },375// CHECK-NEXT:      "valueCategory": "prvalue",376// CHECK-NEXT:      "opcode": "+",377// CHECK-NEXT:      "inner": [378// CHECK-NEXT:       {379// CHECK-NEXT:        "id": "0x{{.*}}",380// CHECK-NEXT:        "kind": "ImplicitCastExpr",381// CHECK-NEXT:        "range": {382// CHECK-NEXT:         "begin": {383// CHECK-NEXT:          "offset": 242,384// CHECK-NEXT:          "col": 10,385// CHECK-NEXT:          "tokLen": 1386// CHECK-NEXT:         },387// CHECK-NEXT:         "end": {388// CHECK-NEXT:          "offset": 242,389// CHECK-NEXT:          "col": 10,390// CHECK-NEXT:          "tokLen": 1391// CHECK-NEXT:         }392// CHECK-NEXT:        },393// CHECK-NEXT:        "type": {394// CHECK-NEXT:         "qualType": "float"395// CHECK-NEXT:        },396// CHECK-NEXT:        "valueCategory": "prvalue",397// CHECK-NEXT:        "castKind": "LValueToRValue",398// CHECK-NEXT:        "inner": [399// CHECK-NEXT:         {400// CHECK-NEXT:          "id": "0x{{.*}}",401// CHECK-NEXT:          "kind": "DeclRefExpr",402// CHECK-NEXT:          "range": {403// CHECK-NEXT:           "begin": {404// CHECK-NEXT:            "offset": 242,405// CHECK-NEXT:            "col": 10,406// CHECK-NEXT:            "tokLen": 1407// CHECK-NEXT:           },408// CHECK-NEXT:           "end": {409// CHECK-NEXT:            "offset": 242,410// CHECK-NEXT:            "col": 10,411// CHECK-NEXT:            "tokLen": 1412// CHECK-NEXT:           }413// CHECK-NEXT:          },414// CHECK-NEXT:          "type": {415// CHECK-NEXT:           "qualType": "float"416// CHECK-NEXT:          },417// CHECK-NEXT:          "valueCategory": "lvalue",418// CHECK-NEXT:          "referencedDecl": {419// CHECK-NEXT:           "id": "0x{{.*}}",420// CHECK-NEXT:           "kind": "ParmVarDecl",421// CHECK-NEXT:           "name": "x",422// CHECK-NEXT:           "type": {423// CHECK-NEXT:            "qualType": "float"424// CHECK-NEXT:           }425// CHECK-NEXT:          }426// CHECK-NEXT:         }427// CHECK-NEXT:        ]428// CHECK-NEXT:       },429// CHECK-NEXT:       {430// CHECK-NEXT:        "id": "0x{{.*}}",431// CHECK-NEXT:        "kind": "ImplicitCastExpr",432// CHECK-NEXT:        "range": {433// CHECK-NEXT:         "begin": {434// CHECK-NEXT:          "offset": 246,435// CHECK-NEXT:          "col": 14,436// CHECK-NEXT:          "tokLen": 1437// CHECK-NEXT:         },438// CHECK-NEXT:         "end": {439// CHECK-NEXT:          "offset": 246,440// CHECK-NEXT:          "col": 14,441// CHECK-NEXT:          "tokLen": 1442// CHECK-NEXT:         }443// CHECK-NEXT:        },444// CHECK-NEXT:        "type": {445// CHECK-NEXT:         "qualType": "float"446// CHECK-NEXT:        },447// CHECK-NEXT:        "valueCategory": "prvalue",448// CHECK-NEXT:        "castKind": "LValueToRValue",449// CHECK-NEXT:        "inner": [450// CHECK-NEXT:         {451// CHECK-NEXT:          "id": "0x{{.*}}",452// CHECK-NEXT:          "kind": "DeclRefExpr",453// CHECK-NEXT:          "range": {454// CHECK-NEXT:           "begin": {455// CHECK-NEXT:            "offset": 246,456// CHECK-NEXT:            "col": 14,457// CHECK-NEXT:            "tokLen": 1458// CHECK-NEXT:           },459// CHECK-NEXT:           "end": {460// CHECK-NEXT:            "offset": 246,461// CHECK-NEXT:            "col": 14,462// CHECK-NEXT:            "tokLen": 1463// CHECK-NEXT:           }464// CHECK-NEXT:          },465// CHECK-NEXT:          "type": {466// CHECK-NEXT:           "qualType": "float"467// CHECK-NEXT:          },468// CHECK-NEXT:          "valueCategory": "lvalue",469// CHECK-NEXT:          "referencedDecl": {470// CHECK-NEXT:           "id": "0x{{.*}}",471// CHECK-NEXT:           "kind": "ParmVarDecl",472// CHECK-NEXT:           "name": "y",473// CHECK-NEXT:           "type": {474// CHECK-NEXT:            "qualType": "float"475// CHECK-NEXT:           }476// CHECK-NEXT:          }477// CHECK-NEXT:         }478// CHECK-NEXT:        ]479// CHECK-NEXT:       }480// CHECK-NEXT:      ]481// CHECK-NEXT:     }482// CHECK-NEXT:    ]483// CHECK-NEXT:   }484// CHECK-NEXT:  ]485// CHECK-NEXT: }486