brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.0 KiB · 1590c52 Raw
518 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++17 -ast-dump=json %s | FileCheck %s2 3enum {4  One,5  Two6};7 8enum E {9  Three,10  Four11};12 13enum F : short {14  Five,15  Six16};17 18enum struct G {19  Seven,20  Eight21};22 23enum class H {24  Nine,25  Ten26};27 28enum class I : int {29  Eleven,30  Twelve31};32 33// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py34// using --filters=EnumDecl35 36// CHECK-NOT: {{^}}Dumping37// CHECK:  "kind": "EnumDecl",38// CHECK-NEXT:  "loc": {39// CHECK-NEXT:   "offset": {{[0-9]+}},40// CHECK-NEXT:   "file": "{{.*}}",41// CHECK-NEXT:   "line": 3,42// CHECK-NEXT:   "col": 1,43// CHECK-NEXT:   "tokLen": 444// CHECK-NEXT:  },45// CHECK-NEXT:  "range": {46// CHECK-NEXT:   "begin": {47// CHECK-NEXT:    "offset": {{[0-9]+}},48// CHECK-NEXT:    "col": 1,49// CHECK-NEXT:    "tokLen": 450// CHECK-NEXT:   },51// CHECK-NEXT:   "end": {52// CHECK-NEXT:    "offset": {{[0-9]+}},53// CHECK-NEXT:    "line": 6,54// CHECK-NEXT:    "col": 1,55// CHECK-NEXT:    "tokLen": 156// CHECK-NEXT:   }57// CHECK-NEXT:  },58// CHECK-NEXT:  "inner": [59// CHECK-NEXT:   {60// CHECK-NEXT:    "id": "0x{{.*}}",61// CHECK-NEXT:    "kind": "EnumConstantDecl",62// CHECK-NEXT:    "loc": {63// CHECK-NEXT:     "offset": {{[0-9]+}},64// CHECK-NEXT:     "line": 4,65// CHECK-NEXT:     "col": 3,66// CHECK-NEXT:     "tokLen": 367// CHECK-NEXT:    },68// CHECK-NEXT:    "range": {69// CHECK-NEXT:     "begin": {70// CHECK-NEXT:      "offset": {{[0-9]+}},71// CHECK-NEXT:      "col": 3,72// CHECK-NEXT:      "tokLen": 373// CHECK-NEXT:     },74// CHECK-NEXT:     "end": {75// CHECK-NEXT:      "offset": {{[0-9]+}},76// CHECK-NEXT:      "col": 3,77// CHECK-NEXT:      "tokLen": 378// CHECK-NEXT:     }79// CHECK-NEXT:    },80// CHECK-NEXT:    "name": "One",81// CHECK-NEXT:    "type": {82// CHECK-NEXT:     "qualType": "(unnamed enum at {{.*}}:3:1)"83// CHECK-NEXT:    }84// CHECK-NEXT:   },85// CHECK-NEXT:   {86// CHECK-NEXT:    "id": "0x{{.*}}",87// CHECK-NEXT:    "kind": "EnumConstantDecl",88// CHECK-NEXT:    "loc": {89// CHECK-NEXT:     "offset": {{[0-9]+}},90// CHECK-NEXT:     "line": 5,91// CHECK-NEXT:     "col": 3,92// CHECK-NEXT:     "tokLen": 393// CHECK-NEXT:    },94// CHECK-NEXT:    "range": {95// CHECK-NEXT:     "begin": {96// CHECK-NEXT:      "offset": {{[0-9]+}},97// CHECK-NEXT:      "col": 3,98// CHECK-NEXT:      "tokLen": 399// CHECK-NEXT:     },100// CHECK-NEXT:     "end": {101// CHECK-NEXT:      "offset": {{[0-9]+}},102// CHECK-NEXT:      "col": 3,103// CHECK-NEXT:      "tokLen": 3104// CHECK-NEXT:     }105// CHECK-NEXT:    },106// CHECK-NEXT:    "name": "Two",107// CHECK-NEXT:    "type": {108// CHECK-NEXT:     "qualType": "(unnamed enum at {{.*}}:3:1)"109// CHECK-NEXT:    }110// CHECK-NEXT:   }111// CHECK-NEXT:  ]112// CHECK-NEXT: }113 114// CHECK-NOT: {{^}}Dumping115// CHECK:  "kind": "EnumDecl",116// CHECK-NEXT:  "loc": {117// CHECK-NEXT:   "offset": {{[0-9]+}},118// CHECK-NEXT:   "line": 8,119// CHECK-NEXT:   "col": 6,120// CHECK-NEXT:   "tokLen": 1121// CHECK-NEXT:  },122// CHECK-NEXT:  "range": {123// CHECK-NEXT:   "begin": {124// CHECK-NEXT:    "offset": {{[0-9]+}},125// CHECK-NEXT:    "col": 1,126// CHECK-NEXT:    "tokLen": 4127// CHECK-NEXT:   },128// CHECK-NEXT:   "end": {129// CHECK-NEXT:    "offset": {{[0-9]+}},130// CHECK-NEXT:    "line": 11,131// CHECK-NEXT:    "col": 1,132// CHECK-NEXT:    "tokLen": 1133// CHECK-NEXT:   }134// CHECK-NEXT:  },135// CHECK-NEXT:  "name": "E",136// CHECK-NEXT:  "inner": [137// CHECK-NEXT:   {138// CHECK-NEXT:    "id": "0x{{.*}}",139// CHECK-NEXT:    "kind": "EnumConstantDecl",140// CHECK-NEXT:    "loc": {141// CHECK-NEXT:     "offset": {{[0-9]+}},142// CHECK-NEXT:     "line": 9,143// CHECK-NEXT:     "col": 3,144// CHECK-NEXT:     "tokLen": 5145// CHECK-NEXT:    },146// CHECK-NEXT:    "range": {147// CHECK-NEXT:     "begin": {148// CHECK-NEXT:      "offset": {{[0-9]+}},149// CHECK-NEXT:      "col": 3,150// CHECK-NEXT:      "tokLen": 5151// CHECK-NEXT:     },152// CHECK-NEXT:     "end": {153// CHECK-NEXT:      "offset": {{[0-9]+}},154// CHECK-NEXT:      "col": 3,155// CHECK-NEXT:      "tokLen": 5156// CHECK-NEXT:     }157// CHECK-NEXT:    },158// CHECK-NEXT:    "name": "Three",159// CHECK-NEXT:    "type": {160// CHECK-NEXT:     "qualType": "E"161// CHECK-NEXT:    }162// CHECK-NEXT:   },163// CHECK-NEXT:   {164// CHECK-NEXT:    "id": "0x{{.*}}",165// CHECK-NEXT:    "kind": "EnumConstantDecl",166// CHECK-NEXT:    "loc": {167// CHECK-NEXT:     "offset": {{[0-9]+}},168// CHECK-NEXT:     "line": 10,169// CHECK-NEXT:     "col": 3,170// CHECK-NEXT:     "tokLen": 4171// CHECK-NEXT:    },172// CHECK-NEXT:    "range": {173// CHECK-NEXT:     "begin": {174// CHECK-NEXT:      "offset": {{[0-9]+}},175// CHECK-NEXT:      "col": 3,176// CHECK-NEXT:      "tokLen": 4177// CHECK-NEXT:     },178// CHECK-NEXT:     "end": {179// CHECK-NEXT:      "offset": {{[0-9]+}},180// CHECK-NEXT:      "col": 3,181// CHECK-NEXT:      "tokLen": 4182// CHECK-NEXT:     }183// CHECK-NEXT:    },184// CHECK-NEXT:    "name": "Four",185// CHECK-NEXT:    "type": {186// CHECK-NEXT:     "qualType": "E"187// CHECK-NEXT:    }188// CHECK-NEXT:   }189// CHECK-NEXT:  ]190// CHECK-NEXT: }191 192// CHECK-NOT: {{^}}Dumping193// CHECK:  "kind": "EnumDecl",194// CHECK-NEXT:  "loc": {195// CHECK-NEXT:   "offset": {{[0-9]+}},196// CHECK-NEXT:   "line": 13,197// CHECK-NEXT:   "col": 6,198// CHECK-NEXT:   "tokLen": 1199// CHECK-NEXT:  },200// CHECK-NEXT:  "range": {201// CHECK-NEXT:   "begin": {202// CHECK-NEXT:    "offset": {{[0-9]+}},203// CHECK-NEXT:    "col": 1,204// CHECK-NEXT:    "tokLen": 4205// CHECK-NEXT:   },206// CHECK-NEXT:   "end": {207// CHECK-NEXT:    "offset": {{[0-9]+}},208// CHECK-NEXT:    "line": 16,209// CHECK-NEXT:    "col": 1,210// CHECK-NEXT:    "tokLen": 1211// CHECK-NEXT:   }212// CHECK-NEXT:  },213// CHECK-NEXT:  "name": "F",214// CHECK-NEXT:  "fixedUnderlyingType": {215// CHECK-NEXT:   "qualType": "short"216// CHECK-NEXT:  },217// CHECK-NEXT:  "inner": [218// CHECK-NEXT:   {219// CHECK-NEXT:    "id": "0x{{.*}}",220// CHECK-NEXT:    "kind": "EnumConstantDecl",221// CHECK-NEXT:    "loc": {222// CHECK-NEXT:     "offset": {{[0-9]+}},223// CHECK-NEXT:     "line": 14,224// CHECK-NEXT:     "col": 3,225// CHECK-NEXT:     "tokLen": 4226// CHECK-NEXT:    },227// CHECK-NEXT:    "range": {228// CHECK-NEXT:     "begin": {229// CHECK-NEXT:      "offset": {{[0-9]+}},230// CHECK-NEXT:      "col": 3,231// CHECK-NEXT:      "tokLen": 4232// CHECK-NEXT:     },233// CHECK-NEXT:     "end": {234// CHECK-NEXT:      "offset": {{[0-9]+}},235// CHECK-NEXT:      "col": 3,236// CHECK-NEXT:      "tokLen": 4237// CHECK-NEXT:     }238// CHECK-NEXT:    },239// CHECK-NEXT:    "name": "Five",240// CHECK-NEXT:    "type": {241// CHECK-NEXT:     "qualType": "F"242// CHECK-NEXT:    }243// CHECK-NEXT:   },244// CHECK-NEXT:   {245// CHECK-NEXT:    "id": "0x{{.*}}",246// CHECK-NEXT:    "kind": "EnumConstantDecl",247// CHECK-NEXT:    "loc": {248// CHECK-NEXT:     "offset": {{[0-9]+}},249// CHECK-NEXT:     "line": 15,250// CHECK-NEXT:     "col": 3,251// CHECK-NEXT:     "tokLen": 3252// CHECK-NEXT:    },253// CHECK-NEXT:    "range": {254// CHECK-NEXT:     "begin": {255// CHECK-NEXT:      "offset": {{[0-9]+}},256// CHECK-NEXT:      "col": 3,257// CHECK-NEXT:      "tokLen": 3258// CHECK-NEXT:     },259// CHECK-NEXT:     "end": {260// CHECK-NEXT:      "offset": {{[0-9]+}},261// CHECK-NEXT:      "col": 3,262// CHECK-NEXT:      "tokLen": 3263// CHECK-NEXT:     }264// CHECK-NEXT:    },265// CHECK-NEXT:    "name": "Six",266// CHECK-NEXT:    "type": {267// CHECK-NEXT:     "qualType": "F"268// CHECK-NEXT:    }269// CHECK-NEXT:   }270// CHECK-NEXT:  ]271// CHECK-NEXT: }272 273// CHECK-NOT: {{^}}Dumping274// CHECK:  "kind": "EnumDecl",275// CHECK-NEXT:  "loc": {276// CHECK-NEXT:   "offset": {{[0-9]+}},277// CHECK-NEXT:   "line": 18,278// CHECK-NEXT:   "col": 13,279// CHECK-NEXT:   "tokLen": 1280// CHECK-NEXT:  },281// CHECK-NEXT:  "range": {282// CHECK-NEXT:   "begin": {283// CHECK-NEXT:    "offset": {{[0-9]+}},284// CHECK-NEXT:    "col": 1,285// CHECK-NEXT:    "tokLen": 4286// CHECK-NEXT:   },287// CHECK-NEXT:   "end": {288// CHECK-NEXT:    "offset": {{[0-9]+}},289// CHECK-NEXT:    "line": 21,290// CHECK-NEXT:    "col": 1,291// CHECK-NEXT:    "tokLen": 1292// CHECK-NEXT:   }293// CHECK-NEXT:  },294// CHECK-NEXT:  "name": "G",295// CHECK-NEXT:  "fixedUnderlyingType": {296// CHECK-NEXT:   "qualType": "int"297// CHECK-NEXT:  },298// CHECK-NEXT:  "scopedEnumTag": "struct",299// CHECK-NEXT:  "inner": [300// CHECK-NEXT:   {301// CHECK-NEXT:    "id": "0x{{.*}}",302// CHECK-NEXT:    "kind": "EnumConstantDecl",303// CHECK-NEXT:    "loc": {304// CHECK-NEXT:     "offset": {{[0-9]+}},305// CHECK-NEXT:     "line": 19,306// CHECK-NEXT:     "col": 3,307// CHECK-NEXT:     "tokLen": 5308// CHECK-NEXT:    },309// CHECK-NEXT:    "range": {310// CHECK-NEXT:     "begin": {311// CHECK-NEXT:      "offset": {{[0-9]+}},312// CHECK-NEXT:      "col": 3,313// CHECK-NEXT:      "tokLen": 5314// CHECK-NEXT:     },315// CHECK-NEXT:     "end": {316// CHECK-NEXT:      "offset": {{[0-9]+}},317// CHECK-NEXT:      "col": 3,318// CHECK-NEXT:      "tokLen": 5319// CHECK-NEXT:     }320// CHECK-NEXT:    },321// CHECK-NEXT:    "name": "Seven",322// CHECK-NEXT:    "type": {323// CHECK-NEXT:     "qualType": "G"324// CHECK-NEXT:    }325// CHECK-NEXT:   },326// CHECK-NEXT:   {327// CHECK-NEXT:    "id": "0x{{.*}}",328// CHECK-NEXT:    "kind": "EnumConstantDecl",329// CHECK-NEXT:    "loc": {330// CHECK-NEXT:     "offset": {{[0-9]+}},331// CHECK-NEXT:     "line": 20,332// CHECK-NEXT:     "col": 3,333// CHECK-NEXT:     "tokLen": 5334// CHECK-NEXT:    },335// CHECK-NEXT:    "range": {336// CHECK-NEXT:     "begin": {337// CHECK-NEXT:      "offset": {{[0-9]+}},338// CHECK-NEXT:      "col": 3,339// CHECK-NEXT:      "tokLen": 5340// CHECK-NEXT:     },341// CHECK-NEXT:     "end": {342// CHECK-NEXT:      "offset": {{[0-9]+}},343// CHECK-NEXT:      "col": 3,344// CHECK-NEXT:      "tokLen": 5345// CHECK-NEXT:     }346// CHECK-NEXT:    },347// CHECK-NEXT:    "name": "Eight",348// CHECK-NEXT:    "type": {349// CHECK-NEXT:     "qualType": "G"350// CHECK-NEXT:    }351// CHECK-NEXT:   }352// CHECK-NEXT:  ]353// CHECK-NEXT: }354 355// CHECK-NOT: {{^}}Dumping356// CHECK:  "kind": "EnumDecl",357// CHECK-NEXT:  "loc": {358// CHECK-NEXT:   "offset": {{[0-9]+}},359// CHECK-NEXT:   "line": 23,360// CHECK-NEXT:   "col": 12,361// CHECK-NEXT:   "tokLen": 1362// CHECK-NEXT:  },363// CHECK-NEXT:  "range": {364// CHECK-NEXT:   "begin": {365// CHECK-NEXT:    "offset": {{[0-9]+}},366// CHECK-NEXT:    "col": 1,367// CHECK-NEXT:    "tokLen": 4368// CHECK-NEXT:   },369// CHECK-NEXT:   "end": {370// CHECK-NEXT:    "offset": {{[0-9]+}},371// CHECK-NEXT:    "line": 26,372// CHECK-NEXT:    "col": 1,373// CHECK-NEXT:    "tokLen": 1374// CHECK-NEXT:   }375// CHECK-NEXT:  },376// CHECK-NEXT:  "name": "H",377// CHECK-NEXT:  "fixedUnderlyingType": {378// CHECK-NEXT:   "qualType": "int"379// CHECK-NEXT:  },380// CHECK-NEXT:  "scopedEnumTag": "class",381// CHECK-NEXT:  "inner": [382// CHECK-NEXT:   {383// CHECK-NEXT:    "id": "0x{{.*}}",384// CHECK-NEXT:    "kind": "EnumConstantDecl",385// CHECK-NEXT:    "loc": {386// CHECK-NEXT:     "offset": {{[0-9]+}},387// CHECK-NEXT:     "line": 24,388// CHECK-NEXT:     "col": 3,389// CHECK-NEXT:     "tokLen": 4390// CHECK-NEXT:    },391// CHECK-NEXT:    "range": {392// CHECK-NEXT:     "begin": {393// CHECK-NEXT:      "offset": {{[0-9]+}},394// CHECK-NEXT:      "col": 3,395// CHECK-NEXT:      "tokLen": 4396// CHECK-NEXT:     },397// CHECK-NEXT:     "end": {398// CHECK-NEXT:      "offset": {{[0-9]+}},399// CHECK-NEXT:      "col": 3,400// CHECK-NEXT:      "tokLen": 4401// CHECK-NEXT:     }402// CHECK-NEXT:    },403// CHECK-NEXT:    "name": "Nine",404// CHECK-NEXT:    "type": {405// CHECK-NEXT:     "qualType": "H"406// CHECK-NEXT:    }407// CHECK-NEXT:   },408// CHECK-NEXT:   {409// CHECK-NEXT:    "id": "0x{{.*}}",410// CHECK-NEXT:    "kind": "EnumConstantDecl",411// CHECK-NEXT:    "loc": {412// CHECK-NEXT:     "offset": {{[0-9]+}},413// CHECK-NEXT:     "line": 25,414// CHECK-NEXT:     "col": 3,415// CHECK-NEXT:     "tokLen": 3416// CHECK-NEXT:    },417// CHECK-NEXT:    "range": {418// CHECK-NEXT:     "begin": {419// CHECK-NEXT:      "offset": {{[0-9]+}},420// CHECK-NEXT:      "col": 3,421// CHECK-NEXT:      "tokLen": 3422// CHECK-NEXT:     },423// CHECK-NEXT:     "end": {424// CHECK-NEXT:      "offset": {{[0-9]+}},425// CHECK-NEXT:      "col": 3,426// CHECK-NEXT:      "tokLen": 3427// CHECK-NEXT:     }428// CHECK-NEXT:    },429// CHECK-NEXT:    "name": "Ten",430// CHECK-NEXT:    "type": {431// CHECK-NEXT:     "qualType": "H"432// CHECK-NEXT:    }433// CHECK-NEXT:   }434// CHECK-NEXT:  ]435// CHECK-NEXT: }436 437// CHECK-NOT: {{^}}Dumping438// CHECK:  "kind": "EnumDecl",439// CHECK-NEXT:  "loc": {440// CHECK-NEXT:   "offset": {{[0-9]+}},441// CHECK-NEXT:   "line": 28,442// CHECK-NEXT:   "col": 12,443// CHECK-NEXT:   "tokLen": 1444// CHECK-NEXT:  },445// CHECK-NEXT:  "range": {446// CHECK-NEXT:   "begin": {447// CHECK-NEXT:    "offset": {{[0-9]+}},448// CHECK-NEXT:    "col": 1,449// CHECK-NEXT:    "tokLen": 4450// CHECK-NEXT:   },451// CHECK-NEXT:   "end": {452// CHECK-NEXT:    "offset": {{[0-9]+}},453// CHECK-NEXT:    "line": 31,454// CHECK-NEXT:    "col": 1,455// CHECK-NEXT:    "tokLen": 1456// CHECK-NEXT:   }457// CHECK-NEXT:  },458// CHECK-NEXT:  "name": "I",459// CHECK-NEXT:  "fixedUnderlyingType": {460// CHECK-NEXT:   "qualType": "int"461// CHECK-NEXT:  },462// CHECK-NEXT:  "scopedEnumTag": "class",463// CHECK-NEXT:  "inner": [464// CHECK-NEXT:   {465// CHECK-NEXT:    "id": "0x{{.*}}",466// CHECK-NEXT:    "kind": "EnumConstantDecl",467// CHECK-NEXT:    "loc": {468// CHECK-NEXT:     "offset": {{[0-9]+}},469// CHECK-NEXT:     "line": 29,470// CHECK-NEXT:     "col": 3,471// CHECK-NEXT:     "tokLen": 6472// CHECK-NEXT:    },473// CHECK-NEXT:    "range": {474// CHECK-NEXT:     "begin": {475// CHECK-NEXT:      "offset": {{[0-9]+}},476// CHECK-NEXT:      "col": 3,477// CHECK-NEXT:      "tokLen": 6478// CHECK-NEXT:     },479// CHECK-NEXT:     "end": {480// CHECK-NEXT:      "offset": {{[0-9]+}},481// CHECK-NEXT:      "col": 3,482// CHECK-NEXT:      "tokLen": 6483// CHECK-NEXT:     }484// CHECK-NEXT:    },485// CHECK-NEXT:    "name": "Eleven",486// CHECK-NEXT:    "type": {487// CHECK-NEXT:     "qualType": "I"488// CHECK-NEXT:    }489// CHECK-NEXT:   },490// CHECK-NEXT:   {491// CHECK-NEXT:    "id": "0x{{.*}}",492// CHECK-NEXT:    "kind": "EnumConstantDecl",493// CHECK-NEXT:    "loc": {494// CHECK-NEXT:     "offset": {{[0-9]+}},495// CHECK-NEXT:     "line": 30,496// CHECK-NEXT:     "col": 3,497// CHECK-NEXT:     "tokLen": 6498// CHECK-NEXT:    },499// CHECK-NEXT:    "range": {500// CHECK-NEXT:     "begin": {501// CHECK-NEXT:      "offset": {{[0-9]+}},502// CHECK-NEXT:      "col": 3,503// CHECK-NEXT:      "tokLen": 6504// CHECK-NEXT:     },505// CHECK-NEXT:     "end": {506// CHECK-NEXT:      "offset": {{[0-9]+}},507// CHECK-NEXT:      "col": 3,508// CHECK-NEXT:      "tokLen": 6509// CHECK-NEXT:     }510// CHECK-NEXT:    },511// CHECK-NEXT:    "name": "Twelve",512// CHECK-NEXT:    "type": {513// CHECK-NEXT:     "qualType": "I"514// CHECK-NEXT:    }515// CHECK-NEXT:   }516// CHECK-NEXT:  ]517// CHECK-NEXT: }518