clang: include/clang/AST/ExprObjC.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_CLANG_AST_EXPROBJC_H

14#define LLVM_CLANG_AST_EXPROBJC_H

15

30#include "llvm/ADT/ArrayRef.h"

31#include "llvm/ADT/PointerIntPair.h"

32#include "llvm/ADT/PointerUnion.h"

33#include "llvm/ADT/StringRef.h"

34#include "llvm/ADT/iterator_range.h"

35#include "llvm/Support/Casting.h"

36#include "llvm/Support/Compiler.h"

37#include "llvm/Support/TrailingObjects.h"

38#include "llvm/Support/VersionTuple.h"

39#include "llvm/Support/type_traits.h"

40#include

41#include

42#include

43#include

44

46

49

50

51

55

56public:

64

68

71

74

75

77

81

83 return T->getStmtClass() == ObjCStringLiteralClass;

84 }

85};

86

87

89 bool Value;

91

92public:

99 : Expr(ObjCBoolLiteralExprClass, Empty) {}

100

103

106

109

110

114

118

120 return T->getStmtClass() == ObjCBoolLiteralExprClass;

121 }

122};

123

124

125

126

127

129 Stmt *SubExpr;

132

133public:

135

138 BoxingMethod(method), Range(R) {

140 }

143

146

148 return BoxingMethod;

149 }

150

151

152

154 return !BoxingMethod && SubExpr;

155 }

156

158

161

165

166

168

172

174

176 return reinterpret_cast<Stmt const * const*>(&SubExpr);

177 }

178

180 return reinterpret_cast<Stmt const * const*>(&SubExpr + 1);

181 }

182

184 return T->getStmtClass() == ObjCBoxedExprClass;

185 }

186};

187

188

189

190class ObjCArrayLiteral final

191 : public Expr,

192 private llvm::TrailingObjects<ObjCArrayLiteral, Expr *> {

193 unsigned NumElements;

196

200

201 explicit ObjCArrayLiteral(EmptyShell Empty, unsigned NumElements)

202 : Expr(ObjCArrayLiteralClass, Empty), NumElements(NumElements) {}

203

204public:

207

212

214 unsigned NumElements);

215

219

220

222

223

224 const Expr *const *getElements() const { return getTrailingObjects(); }

225

226

228

229

231 assert((Index < NumElements) && "Arg access out of range!");

233 }

235 assert((Index < NumElements) && "Arg access out of range!");

237 }

238

240 return ArrayWithObjectsMethod;

241 }

242

243

248

250 return const_cast<ObjCArrayLiteral *>(this)->children();

251 }

252

254 return T->getStmtClass() == ObjCArrayLiteralClass;

255 }

256};

257

258

259

261

263

264

266

267

269

270

271

273

274

276};

277

278}

279

281

282

287

288

289

290

292

293

295

296

297

299};

300

301

302

303class ObjCDictionaryLiteral final

304 : public Expr,

305 private llvm::TrailingObjects<ObjCDictionaryLiteral,

306 ObjCDictionaryLiteral_KeyValuePair,

307 ObjCDictionaryLiteral_ExpansionData> {

308

309 unsigned NumElements : 31;

310

311

312

313

314

315

316

317

318 LLVM_PREFERRED_TYPE(bool)

319 unsigned HasPackExpansions : 1;

320

323

326

328 bool HasPackExpansions,

331

332 explicit ObjCDictionaryLiteral(EmptyShell Empty, unsigned NumElements,

333 bool HasPackExpansions)

334 : Expr(ObjCDictionaryLiteralClass, Empty), NumElements(NumElements),

335 HasPackExpansions(HasPackExpansions) {}

336

337 size_t numTrailingObjects(OverloadToken) const {

338 return NumElements;

339 }

340

341public:

345

348 bool HasPackExpansions,

351

353 unsigned NumElements,

354 bool HasPackExpansions);

355

356

357

359

361 assert((Index < NumElements) && "Arg access out of range!");

362 const KeyValuePair &KV = getTrailingObjects()[Index];

364 std::nullopt};

365 if (HasPackExpansions) {

366 const ExpansionData &Expansion =

367 getTrailingObjects()[Index];

371 }

373 }

374

376 return DictWithObjectsMethod;

377 }

378

382

383

385

386

387 static_assert(sizeof(KeyValuePair) == sizeof(Stmt *) * 2,

388 "KeyValuePair is expected size");

390 reinterpret_cast<Stmt **>(getTrailingObjects()),

391 reinterpret_cast<Stmt **>(getTrailingObjects()) +

392 NumElements * 2);

393 }

394

396 return const_cast<ObjCDictionaryLiteral *>(this)->children();

397 }

398

400 return T->getStmtClass() == ObjCDictionaryLiteralClass;

401 }

402};

403

404

405

406

410

411public:

415 EncodedType(EncodedType), AtLoc(at), RParenLoc(rp) {

417 }

418

420

425

427

429

431 EncodedType = EncType;

432 }

433

436

437

441

445

447 return T->getStmtClass() == ObjCEncodeExprClass;

448 }

449};

450

451

455

456public:

460 SelName(selInfo), AtLoc(at), RParenLoc(rp) {

462 }

465

468

473

476

477

478 unsigned getNumArgs() const { return SelName.getNumArgs(); }

479

480

484

488

490 return T->getStmtClass() == ObjCSelectorExprClass;

491 }

492};

493

494

495

496

497

498

499

500

501

505

506public:

509

513 TheProtocol(protocol), AtLoc(at), ProtoLoc(protoLoc), RParenLoc(rp) {

515 }

518

521

527

530

531

535

539

541 return T->getStmtClass() == ObjCProtocolExprClass;

542 }

543};

544

545

550

551

553

554

555 LLVM_PREFERRED_TYPE(bool)

556 bool IsArrow : 1;

557

558

559 LLVM_PREFERRED_TYPE(bool)

560 bool IsFreeIvar : 1;

561

562public:

565 bool freeIvar = false)

568 D(d), Base(base), Loc(l), OpLoc(oploc), IsArrow(arrow),

569 IsFreeIvar(freeIvar) {

571 }

572

575

579

583

584 bool isArrow() const { return IsArrow; }

588

591

596

599

600

602

606

608 return T->getStmtClass() == ObjCIvarRefExprClass;

609 }

610};

611

612

613

615private:

616

617

618

619

620 llvm::PointerIntPair<NamedDecl *, 1, bool> PropertyOrGetter;

621

622

623

624

625 enum MethodRefFlags {

626 MethodRef_None = 0,

627 MethodRef_Getter = 0x1,

628 MethodRef_Setter = 0x2

629 };

630

631

632 llvm::PointerIntPair<ObjCMethodDecl *, 2, unsigned> SetterAndMethodRefFlags;

633

634

635

636

637

638

640

641

642

643

645 llvm::PointerUnion<Stmt *, const Type *, ObjCInterfaceDecl *> Receiver;

646

647public:

650 : Expr(ObjCPropertyRefExprClass, t, VK, OK), PropertyOrGetter(PD, false),

651 IdLoc(l), Receiver(base) {

654 }

655

659 : Expr(ObjCPropertyRefExprClass, t, VK, OK), PropertyOrGetter(PD, false),

660 IdLoc(l), ReceiverLoc(sl), Receiver(st.getTypePtr()) {

663 }

664

668 : Expr(ObjCPropertyRefExprClass, T, VK, OK),

669 PropertyOrGetter(Getter, true), SetterAndMethodRefFlags(Setter, 0),

670 IdLoc(IdLoc), Receiver(Base) {

671 assert(T->isSpecificPlaceholderType(BuiltinType::PseudoObject));

673 }

674

679 : Expr(ObjCPropertyRefExprClass, T, VK, OK),

680 PropertyOrGetter(Getter, true), SetterAndMethodRefFlags(Setter, 0),

681 IdLoc(IdLoc), ReceiverLoc(SuperLoc), Receiver(SuperTy.getTypePtr()) {

682 assert(T->isSpecificPlaceholderType(BuiltinType::PseudoObject));

684 }

685

690 : Expr(ObjCPropertyRefExprClass, T, VK, OK),

691 PropertyOrGetter(Getter, true), SetterAndMethodRefFlags(Setter, 0),

692 IdLoc(IdLoc), ReceiverLoc(ReceiverLoc), Receiver(Receiver) {

693 assert(T->isSpecificPlaceholderType(BuiltinType::PseudoObject));

695 }

696

698 : Expr(ObjCPropertyRefExprClass, Empty) {}

699

702

707

710 return cast_or_null(PropertyOrGetter.getPointer());

711 }

712

715 return SetterAndMethodRefFlags.getPointer();

716 }

717

723

729

730

731

732

734 return SetterAndMethodRefFlags.getInt() & MethodRef_Getter;

735 }

736

737

738

739

741 return SetterAndMethodRefFlags.getInt() & MethodRef_Setter;

742 }

743

745 setMethodRefFlag(MethodRef_Getter, val);

746 }

747

749 setMethodRefFlag(MethodRef_Setter, val);

750 }

751

754

756

758

762

766

770

771

773

778

780

781

784 Stmt **begin = reinterpret_cast<Stmt**>(&Receiver);

786 }

788 }

789

793

795 return T->getStmtClass() == ObjCPropertyRefExprClass;

796 }

797

798private:

801

802 void setExplicitProperty(ObjCPropertyDecl *D, unsigned methRefFlags) {

803 PropertyOrGetter.setPointer(D);

804 PropertyOrGetter.setInt(false);

805 SetterAndMethodRefFlags.setPointer(nullptr);

806 SetterAndMethodRefFlags.setInt(methRefFlags);

807 }

808

810 unsigned methRefFlags) {

811 PropertyOrGetter.setPointer(Getter);

812 PropertyOrGetter.setInt(true);

813 SetterAndMethodRefFlags.setPointer(Setter);

814 SetterAndMethodRefFlags.setInt(methRefFlags);

815 }

816

817 void setBase(Expr *Base) { Receiver = Base; }

818 void setSuperReceiver(QualType T) { Receiver = T.getTypePtr(); }

819 void setClassReceiver(ObjCInterfaceDecl *D) { Receiver = D; }

820

821 void setLocation(SourceLocation L) { IdLoc = L; }

822 void setReceiverLocation(SourceLocation Loc) { ReceiverLoc = Loc; }

823

824 void setMethodRefFlag(MethodRefFlags flag, bool val) {

825 unsigned f = SetterAndMethodRefFlags.getInt();

826 if (val)

827 f |= flag;

828 else

829 f &= ~flag;

830 SetterAndMethodRefFlags.setInt(f);

831 }

832};

833

834

835

837

839

840

841

842

843 enum { BASE, KEY, END_EXPR };

844 Stmt* SubExprs[END_EXPR];

845

847

848

849

851

852public:

856 : Expr(ObjCSubscriptRefExprClass, T, VK, OK), RBracket(RB),

857 GetAtIndexMethodDecl(getMethod), SetAtIndexMethodDecl(setMethod) {

858 SubExprs[BASE] = base;

859 SubExprs[KEY] = key;

861 }

862

864 : Expr(ObjCSubscriptRefExprClass, Empty) {}

865

868

870 return SubExprs[BASE]->getBeginLoc();

871 }

872

874

877

880

882 return GetAtIndexMethodDecl;

883 }

884

886 return SetAtIndexMethodDecl;

887 }

888

892

894 return child_range(SubExprs, SubExprs+END_EXPR);

895 }

896

900

902 return T->getStmtClass() == ObjCSubscriptRefExprClass;

903 }

904

905private:

907};

908

909

910

911

912

913

914

915

916

917

918

919

920

921

922

923

924

925

926

927

928

929

930

931

932

933

934

935class ObjCMessageExpr final

936 : public Expr,

937 private llvm::TrailingObjects<ObjCMessageExpr, void *, SourceLocation> {

938public:

939

941

943

944

946

947

949

950

952 };

953

954private:

955

956

957

959

960 enum { NumArgsBitWidth = 16 };

961

962

963

964 unsigned NumArgs : NumArgsBitWidth;

965

966

967

968

969

971 unsigned Kind : 8;

972

973

974

975

976

977

978 LLVM_PREFERRED_TYPE(bool)

979 unsigned HasMethod : 1;

980

981

982

983 LLVM_PREFERRED_TYPE(bool)

984 unsigned IsDelegateInitCall : 1;

985

986

987

988 LLVM_PREFERRED_TYPE(bool)

989 unsigned IsImplicit : 1;

990

991

992

994 unsigned SelLocsKind : 2;

995

996

997

998 SourceLocation SuperLoc;

999

1000

1001

1002 SourceLocation LBracLoc, RBracLoc;

1003

1004 ObjCMessageExpr(EmptyShell Empty, unsigned NumArgs)

1005 : Expr(ObjCMessageExprClass, Empty), Kind(0), HasMethod(false),

1006 IsDelegateInitCall(false), IsImplicit(false), SelLocsKind(0) {

1007 setNumArgs(NumArgs);

1008 }

1009

1011 SourceLocation LBracLoc,

1012 SourceLocation SuperLoc,

1013 bool IsInstanceSuper,

1014 QualType SuperType,

1015 Selector Sel,

1016 ArrayRef SelLocs,

1018 ObjCMethodDecl *Method,

1019 ArrayRef<Expr *> Args,

1020 SourceLocation RBracLoc,

1023 SourceLocation LBracLoc,

1024 TypeSourceInfo *Receiver,

1025 Selector Sel,

1026 ArrayRef SelLocs,

1028 ObjCMethodDecl *Method,

1029 ArrayRef<Expr *> Args,

1030 SourceLocation RBracLoc,

1033 SourceLocation LBracLoc,

1034 Expr *Receiver,

1035 Selector Sel,

1036 ArrayRef SelLocs,

1038 ObjCMethodDecl *Method,

1039 ArrayRef<Expr *> Args,

1040 SourceLocation RBracLoc,

1042

1043 size_t numTrailingObjects(OverloadToken<void *>) const { return NumArgs + 1; }

1044

1045 void setNumArgs(unsigned Num) {

1046 assert((Num >> NumArgsBitWidth) == 0 && "Num of args is out of range!");

1047 NumArgs = Num;

1048 }

1049

1050 void initArgsAndSelLocs(ArrayRef<Expr *> Args,

1051 ArrayRef SelLocs,

1053

1054

1055 void *getReceiverPointer() const { return *getTrailingObjects<void *>(); }

1056

1057

1058 void setReceiverPointer(void *Value) {

1059 *getTrailingObjects<void *>() = Value;

1060 }

1061

1064 }

1065

1066 bool hasStandardSelLocs() const {

1068 }

1069

1070

1071

1072 SourceLocation *getStoredSelLocs() {

1073 return getTrailingObjects();

1074 }

1075 const SourceLocation *getStoredSelLocs() const {

1076 return getTrailingObjects();

1077 }

1078

1079

1080

1081 unsigned getNumStoredSelLocs() const {

1082 if (hasStandardSelLocs())

1083 return 0;

1085 }

1086

1087 static ObjCMessageExpr *alloc(const ASTContext &C,

1088 ArrayRef<Expr *> Args,

1089 SourceLocation RBraceLoc,

1090 ArrayRef SelLocs,

1091 Selector Sel,

1093 static ObjCMessageExpr *alloc(const ASTContext &C,

1094 unsigned NumArgs,

1095 unsigned NumStoredSelLocs);

1096

1097public:

1101

1102

1103

1104

1105

1106

1107

1108

1109

1110

1111

1112

1113

1114

1115

1116

1117

1118

1119

1120

1121

1122

1123

1124

1125

1126

1131 bool IsInstanceSuper,

1139

1140

1141

1142

1143

1144

1145

1146

1147

1148

1149

1150

1151

1152

1153

1154

1155

1156

1157

1158

1159

1160

1161

1162

1173

1174

1175

1176

1177

1178

1179

1180

1181

1182

1183

1184

1185

1186

1187

1188

1189

1190

1191

1192

1193

1194

1195

1196

1200 Expr *Receiver,

1207

1208

1209

1210

1211

1212

1213

1214

1216 unsigned NumArgs,

1217 unsigned NumStoredSelLocs);

1218

1219

1220

1221

1223

1224

1225

1227

1228

1229

1230

1231

1232

1234

1235

1236

1237

1238 std::pair<const NamedDecl *, const WarnUnusedResultAttr *>

1242

1243

1247

1248

1250

1251

1252

1256

1257

1258

1262

1263

1264

1267 return static_cast<Expr *>(getReceiverPointer());

1268

1269 return nullptr;

1270 }

1274

1275

1276

1279 setReceiverPointer(rec);

1280 }

1281

1282

1283

1286 return TSInfo->getType();

1287

1288 return {};

1289 }

1290

1291

1292

1295 return reinterpret_cast<TypeSourceInfo *>(getReceiverPointer());

1296 return nullptr;

1297 }

1298

1301 setReceiverPointer(TSInfo);

1302 }

1303

1304

1305

1308 return SuperLoc;

1309

1311 }

1312

1313

1314

1315

1316

1317

1318

1319

1320

1321

1323

1324

1325

1326

1327

1328

1329

1330

1331

1332

1333

1335

1336

1337

1338

1339

1340

1347

1350 SuperLoc = Loc;

1351 setReceiverPointer(T.getAsOpaquePtr());

1352 }

1353

1355

1357 HasMethod = false;

1359 }

1360

1362 if (HasMethod)

1363 return reinterpret_cast<const ObjCMethodDecl *>(SelectorOrMethod);

1364

1365 return nullptr;

1366 }

1367

1369 if (HasMethod)

1370 return reinterpret_cast<ObjCMethodDecl *>(SelectorOrMethod);

1371

1372 return nullptr;

1373 }

1374

1376 HasMethod = true;

1377 SelectorOrMethod = reinterpret_cast<uintptr_t>(MD);

1378 }

1379

1384

1385

1386

1388

1389

1390

1392 return reinterpret_cast<Expr **>(getTrailingObjects<void *>() + 1);

1393 }

1395 return reinterpret_cast<const Expr *const *>(getTrailingObjects<void *>() +

1396 1);

1397 }

1398

1399

1401 assert(Arg < NumArgs && "Arg access out of range!");

1403 }

1405 assert(Arg < NumArgs && "Arg access out of range!");

1407 }

1408

1409

1411 assert(Arg < NumArgs && "Arg access out of range!");

1412 getArgs()[Arg] = ArgExpr;

1413 }

1414

1415

1416

1417

1420

1423

1429

1432 if (hasStandardSelLocs())

1436 return getStoredSelLocs()[Index];

1437 }

1438

1440

1443 return 0;

1446 return 1;

1448 }

1449

1452 RBracLoc = R.getEnd();

1453 }

1454

1457

1458

1460

1462

1465

1469

1470 llvm::iterator_range<const_arg_iterator> arguments() const {

1472 }

1473

1475

1477 return reinterpret_cast<Stmt **>(getArgs() + NumArgs);

1478 }

1479

1481 return reinterpret_cast<Stmt const * const*>(getArgs());

1482 }

1483

1485 return reinterpret_cast<Stmt const * const*>(getArgs() + NumArgs);

1486 }

1487

1489 return T->getStmtClass() == ObjCMessageExprClass;

1490 }

1491};

1492

1493

1494

1496

1498

1499

1501

1502

1504

1505

1506 bool IsArrow;

1507

1508public:

1512 IsaMemberLoc(l), OpLoc(oploc), IsArrow(isarrow) {

1514 }

1515

1516

1518

1521

1522 bool isArrow() const { return IsArrow; }

1524

1525

1526

1529

1532

1536

1540

1542

1544

1545

1547

1551

1553 return T->getStmtClass() == ObjCIsaExprClass;

1554 }

1555};

1556

1557

1558

1559

1560

1561

1562

1563

1564

1565

1566

1567

1568

1569

1570

1571

1572

1573

1574

1575

1576

1577

1578

1579class ObjCIndirectCopyRestoreExpr : public Expr {

1582

1583 Stmt *Operand;

1584

1585

1586

1588 : Expr(ObjCIndirectCopyRestoreExprClass, Empty) {}

1589

1590 void setShouldCopy(bool shouldCopy) {

1592 }

1593

1594public:

1597 Operand(operand) {

1600 }

1601

1604

1605

1606

1608

1610

1614

1615

1617 return Operand->getBeginLoc();

1618 }

1620 return Operand->getEndLoc();

1621 }

1622

1626

1628 return s->getStmtClass() == ObjCIndirectCopyRestoreExprClass;

1629 }

1630};

1631

1632

1633

1634

1635

1636

1637

1640 private llvm::TrailingObjects<ObjCBridgedCastExpr, CXXBaseSpecifier *> {

1644 friend TrailingObjects;

1645

1649 unsigned Kind : 2;

1650

1651public:

1657 LParenLoc(LParenLoc), BridgeKeywordLoc(BridgeKeywordLoc), Kind(Kind) {}

1658

1659

1662

1664

1665

1669

1670

1672

1673

1675

1677

1681

1683 return T->getStmtClass() == ObjCBridgedCastExprClass;

1684 }

1685};

1686

1687

1688

1689

1690

1691

1692

1693

1694

1695

1696

1697

1698

1699

1702

1703 VersionTuple VersionToCheck;

1705

1706public:

1710 VersionToCheck(VersionToCheck), AtLoc(AtLoc), RParen(RParen) {

1712 }

1713

1715 : Expr(ObjCAvailabilityCheckExprClass, Shell) {}

1716

1720

1721

1722 bool hasVersion() const { return !VersionToCheck.empty(); }

1723 VersionTuple getVersion() const { return VersionToCheck; }

1724

1728

1732

1734 return T->getStmtClass() == ObjCAvailabilityCheckExprClass;

1735 }

1736};

1737

1738}

1739

1740#endif

Defines the clang::IdentifierInfo, clang::IdentifierTable, and clang::Selector interfaces.

Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.

Defines the clang::SourceLocation class and associated facilities.

Defines various enumerations that describe declaration and type specifiers.

C Language Family Type Representation.

__device__ __2f16 float __ockl_bool s

Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...

Represents a base class of a C++ class.

ExplicitCastExpr(StmtClass SC, QualType exprTy, ExprValueKind VK, CastKind kind, Expr *op, unsigned PathSize, bool HasFPFeatures, TypeSourceInfo *writtenTy)

This represents one expression.

static std::pair< const NamedDecl *, const WarnUnusedResultAttr * > getUnusedResultAttrImpl(const Decl *Callee, QualType ReturnType)

Returns the WarnUnusedResultAttr that is declared on the callee or its return type declaration,...

SourceLocation getExprLoc() const LLVM_READONLY

getExprLoc - Return the preferred location for the arrow when diagnosing a problem with a generic exp...

void setDependence(ExprDependence Deps)

Each concrete expr subclass is expected to compute its dependence and call this in the constructor.

Expr * getElement(unsigned Index)

getElement - Return the Element at the specified index.

Definition ExprObjC.h:230

const Expr *const * getElements() const

Retrieve elements of array of literals.

Definition ExprObjC.h:224

child_range children()

Definition ExprObjC.h:244

static ObjCArrayLiteral * CreateEmpty(const ASTContext &C, unsigned NumElements)

const_child_range children() const

Definition ExprObjC.h:249

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:216

Expr ** getElements()

Retrieve elements of array of literals.

Definition ExprObjC.h:221

unsigned getNumElements() const

getNumElements - Return number of elements of objective-c array literal.

Definition ExprObjC.h:227

friend TrailingObjects

Definition ExprObjC.h:206

const Expr * getElement(unsigned Index) const

Definition ExprObjC.h:234

SourceRange getSourceRange() const LLVM_READONLY

Definition ExprObjC.h:218

ObjCMethodDecl * getArrayWithObjectsMethod() const

Definition ExprObjC.h:239

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:217

friend class ASTStmtReader

Definition ExprObjC.h:205

static bool classof(const Stmt *T)

Definition ExprObjC.h:253

bool hasVersion() const

This may be '*', in which case this should fold to true.

Definition ExprObjC.h:1722

const_child_range children() const

Definition ExprObjC.h:1729

static bool classof(const Stmt *T)

Definition ExprObjC.h:1733

ObjCAvailabilityCheckExpr(EmptyShell Shell)

Definition ExprObjC.h:1714

SourceRange getSourceRange() const

Definition ExprObjC.h:1719

SourceLocation getBeginLoc() const

Definition ExprObjC.h:1717

SourceLocation getEndLoc() const

Definition ExprObjC.h:1718

VersionTuple getVersion() const

Definition ExprObjC.h:1723

friend class ASTStmtReader

Definition ExprObjC.h:1701

child_range children()

Definition ExprObjC.h:1725

ObjCAvailabilityCheckExpr(VersionTuple VersionToCheck, SourceLocation AtLoc, SourceLocation RParen, QualType Ty)

Definition ExprObjC.h:1707

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:105

void setLocation(SourceLocation L)

Definition ExprObjC.h:108

bool getValue() const

Definition ExprObjC.h:101

void setValue(bool V)

Definition ExprObjC.h:102

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:104

SourceLocation getLocation() const

Definition ExprObjC.h:107

const_child_range children() const

Definition ExprObjC.h:115

ObjCBoolLiteralExpr(bool val, QualType Ty, SourceLocation l)

Definition ExprObjC.h:93

static bool classof(const Stmt *T)

Definition ExprObjC.h:119

child_range children()

Definition ExprObjC.h:111

ObjCBoolLiteralExpr(EmptyShell Empty)

Definition ExprObjC.h:98

const_arg_iterator arg_begin() const

Definition ExprObjC.h:175

const Expr * getSubExpr() const

Definition ExprObjC.h:145

ConstExprIterator const_arg_iterator

Definition ExprObjC.h:173

Expr * getSubExpr()

Definition ExprObjC.h:144

SourceLocation getAtLoc() const

Definition ExprObjC.h:157

ObjCBoxedExpr(Expr *E, QualType T, ObjCMethodDecl *method, SourceRange R)

Definition ExprObjC.h:136

SourceRange getSourceRange() const LLVM_READONLY

Definition ExprObjC.h:162

static bool classof(const Stmt *T)

Definition ExprObjC.h:183

ObjCBoxedExpr(EmptyShell Empty)

Definition ExprObjC.h:141

const_child_range children() const

Definition ExprObjC.h:169

ObjCMethodDecl * getBoxingMethod() const

Definition ExprObjC.h:147

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:159

const_arg_iterator arg_end() const

Definition ExprObjC.h:179

bool isExpressibleAsConstantInitializer() const

Definition ExprObjC.h:153

friend class ASTStmtReader

Definition ExprObjC.h:134

child_range children()

Definition ExprObjC.h:167

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:160

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:1678

ObjCBridgedCastExpr(EmptyShell Shell)

Construct an empty Objective-C bridged cast.

Definition ExprObjC.h:1660

StringRef getBridgeKindName() const

Retrieve the kind of bridge being performed as a string.

SourceLocation getLParenLoc() const

Definition ExprObjC.h:1663

static bool classof(const Stmt *T)

Definition ExprObjC.h:1682

SourceLocation getBridgeKeywordLoc() const

The location of the bridge keyword.

Definition ExprObjC.h:1674

ObjCBridgeCastKind getBridgeKind() const

Determine which kind of bridge is being performed via this cast.

Definition ExprObjC.h:1666

friend class CastExpr

Definition ExprObjC.h:1643

ObjCBridgedCastExpr(SourceLocation LParenLoc, ObjCBridgeCastKind Kind, CastKind CK, SourceLocation BridgeKeywordLoc, TypeSourceInfo *TSInfo, Expr *Operand)

Definition ExprObjC.h:1652

friend class ASTStmtWriter

Definition ExprObjC.h:1642

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:1676

friend class ASTStmtReader

Definition ExprObjC.h:1641

static ObjCDictionaryLiteral * CreateEmpty(const ASTContext &C, unsigned NumElements, bool HasPackExpansions)

const_child_range children() const

Definition ExprObjC.h:395

child_range children()

Definition ExprObjC.h:384

unsigned getNumElements() const

getNumElements - Return number of elements of objective-c dictionary literal.

Definition ExprObjC.h:358

ObjCMethodDecl * getDictWithObjectsMethod() const

Definition ExprObjC.h:375

ObjCDictionaryElement getKeyValueElement(unsigned Index) const

Definition ExprObjC.h:360

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:379

friend TrailingObjects

Definition ExprObjC.h:344

friend class ASTStmtWriter

Definition ExprObjC.h:343

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:380

friend class ASTStmtReader

Definition ExprObjC.h:342

SourceRange getSourceRange() const LLVM_READONLY

Definition ExprObjC.h:381

static bool classof(const Stmt *T)

Definition ExprObjC.h:399

void setEncodedTypeSourceInfo(TypeSourceInfo *EncType)

Definition ExprObjC.h:430

TypeSourceInfo * getEncodedTypeSourceInfo() const

Definition ExprObjC.h:428

const_child_range children() const

Definition ExprObjC.h:442

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:434

SourceLocation getRParenLoc() const

Definition ExprObjC.h:423

void setRParenLoc(SourceLocation L)

Definition ExprObjC.h:424

static bool classof(const Stmt *T)

Definition ExprObjC.h:446

QualType getEncodedType() const

Definition ExprObjC.h:426

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:435

void setAtLoc(SourceLocation L)

Definition ExprObjC.h:422

ObjCEncodeExpr(QualType T, TypeSourceInfo *EncodedType, SourceLocation at, SourceLocation rp)

Definition ExprObjC.h:412

SourceLocation getAtLoc() const

Definition ExprObjC.h:421

child_range children()

Definition ExprObjC.h:438

ObjCEncodeExpr(EmptyShell Empty)

Definition ExprObjC.h:419

const Expr * getSubExpr() const

Definition ExprObjC.h:1603

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:1619

static bool classof(const Stmt *s)

Definition ExprObjC.h:1627

bool shouldCopy() const

shouldCopy - True if we should do the 'copy' part of the copy-restore.

Definition ExprObjC.h:1607

SourceLocation getExprLoc() const LLVM_READONLY

Definition ExprObjC.h:1623

ObjCIndirectCopyRestoreExpr(Expr *operand, QualType type, bool shouldCopy)

Definition ExprObjC.h:1595

child_range children()

Definition ExprObjC.h:1609

friend class ASTReader

Definition ExprObjC.h:1580

Expr * getSubExpr()

Definition ExprObjC.h:1602

const_child_range children() const

Definition ExprObjC.h:1611

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:1616

friend class ASTStmtReader

Definition ExprObjC.h:1581

Represents an ObjC class declaration.

SourceLocation getIsaMemberLoc() const

getMemberLoc - Return the location of the "member", in X->F, it is the location of 'F'.

Definition ExprObjC.h:1527

ObjCIsaExpr(EmptyShell Empty)

Build an empty expression.

Definition ExprObjC.h:1517

SourceLocation getOpLoc() const

Definition ExprObjC.h:1530

void setIsaMemberLoc(SourceLocation L)

Definition ExprObjC.h:1528

Expr * getBase() const

Definition ExprObjC.h:1520

static bool classof(const Stmt *T)

Definition ExprObjC.h:1552

SourceLocation getBaseLocEnd() const LLVM_READONLY

Definition ExprObjC.h:1537

bool isArrow() const

Definition ExprObjC.h:1522

child_range children()

Definition ExprObjC.h:1546

void setBase(Expr *E)

Definition ExprObjC.h:1519

void setArrow(bool A)

Definition ExprObjC.h:1523

void setOpLoc(SourceLocation L)

Definition ExprObjC.h:1531

SourceLocation getExprLoc() const LLVM_READONLY

Definition ExprObjC.h:1543

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:1541

const_child_range children() const

Definition ExprObjC.h:1548

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:1533

ObjCIsaExpr(Expr *base, bool isarrow, SourceLocation l, SourceLocation oploc, QualType ty)

Definition ExprObjC.h:1509

ObjCIvarDecl - Represents an ObjC instance variable.

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:592

void setIsArrow(bool A)

Definition ExprObjC.h:586

void setBase(Expr *base)

Definition ExprObjC.h:582

SourceLocation getLocation() const

Definition ExprObjC.h:589

SourceLocation getOpLoc() const

Definition ExprObjC.h:597

void setDecl(ObjCIvarDecl *d)

Definition ExprObjC.h:578

ObjCIvarDecl * getDecl()

Definition ExprObjC.h:576

ObjCIvarRefExpr(EmptyShell Empty)

Definition ExprObjC.h:573

bool isArrow() const

Definition ExprObjC.h:584

bool isFreeIvar() const

Definition ExprObjC.h:585

void setIsFreeIvar(bool A)

Definition ExprObjC.h:587

void setOpLoc(SourceLocation L)

Definition ExprObjC.h:598

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:595

const_child_range children() const

Definition ExprObjC.h:603

Expr * getBase()

Definition ExprObjC.h:581

const ObjCIvarDecl * getDecl() const

Definition ExprObjC.h:577

const Expr * getBase() const

Definition ExprObjC.h:580

child_range children()

Definition ExprObjC.h:601

void setLocation(SourceLocation L)

Definition ExprObjC.h:590

static bool classof(const Stmt *T)

Definition ExprObjC.h:607

ObjCIvarRefExpr(ObjCIvarDecl *d, QualType t, SourceLocation l, SourceLocation oploc, Expr *base, bool arrow=false, bool freeIvar=false)

Definition ExprObjC.h:563

const Expr * getArg(unsigned Arg) const

Definition ExprObjC.h:1404

Expr * getArg(unsigned Arg)

getArg - Return the specified argument.

Definition ExprObjC.h:1400

void getSelectorLocs(SmallVectorImpl< SourceLocation > &SelLocs) const

bool isImplicit() const

Indicates whether the message send was implicitly generated by the implementation.

Definition ExprObjC.h:1222

llvm::iterator_range< const_arg_iterator > arguments() const

Definition ExprObjC.h:1470

static ObjCMessageExpr * CreateEmpty(const ASTContext &Context, unsigned NumArgs, unsigned NumStoredSelLocs)

Create an empty Objective-C message expression, to be filled in by subsequent calls.

void setMethodDecl(ObjCMethodDecl *MD)

Definition ExprObjC.h:1375

Expr ** getArgs()

Retrieve the arguments to this message, not including the receiver.

Definition ExprObjC.h:1391

bool isDelegateInitCall() const

isDelegateInitCall - Answers whether this message send has been tagged as a "delegate init call",...

Definition ExprObjC.h:1418

ObjCMethodDecl * getMethodDecl()

Definition ExprObjC.h:1368

void setClassReceiver(TypeSourceInfo *TSInfo)

Definition ExprObjC.h:1299

void setInstanceReceiver(Expr *rec)

Turn this message send into an instance message that computes the receiver object with the given expr...

Definition ExprObjC.h:1277

const_arg_iterator arg_end() const

Definition ExprObjC.h:1484

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:1455

void setSuper(SourceLocation Loc, QualType T, bool IsInstanceSuper)

Definition ExprObjC.h:1348

SourceLocation getLeftLoc() const

Definition ExprObjC.h:1421

Expr * getInstanceReceiver()

Returns the object expression (receiver) for an instance message, or null for a message that is not a...

Definition ExprObjC.h:1265

QualType getCallReturnType(ASTContext &Ctx) const

SourceLocation getSuperLoc() const

Retrieve the location of the 'super' keyword for a class or instance message to 'super',...

Definition ExprObjC.h:1306

ObjCMethodFamily getMethodFamily() const

Definition ExprObjC.h:1380

Selector getSelector() const

ReceiverKind

The kind of receiver this message is sending to.

Definition ExprObjC.h:940

@ SuperInstance

The receiver is the instance of the superclass object.

Definition ExprObjC.h:951

@ Instance

The receiver is an object instance.

Definition ExprObjC.h:945

@ SuperClass

The receiver is a superclass.

Definition ExprObjC.h:948

@ Class

The receiver is a class.

Definition ExprObjC.h:942

ConstExprIterator const_arg_iterator

Definition ExprObjC.h:1464

TypeSourceInfo * getClassReceiverTypeInfo() const

Returns a type-source information of a class message send, or nullptr if the message is not a class m...

Definition ExprObjC.h:1293

QualType getClassReceiver() const

Returns the type of a class message send, or NULL if the message is not a class message.

Definition ExprObjC.h:1284

void setDelegateInitCall(bool isDelegate)

Definition ExprObjC.h:1419

bool isInstanceMessage() const

Determine whether this is an instance message to either a computed object or to super.

Definition ExprObjC.h:1253

llvm::iterator_range< arg_iterator > arguments()

Definition ExprObjC.h:1466

ObjCInterfaceDecl * getReceiverInterface() const

Retrieve the Objective-C interface to which this message is being directed, if known.

QualType getSuperType() const

Retrieve the type referred to by 'super'.

Definition ExprObjC.h:1341

const ObjCMethodDecl * getMethodDecl() const

Definition ExprObjC.h:1361

SourceRange getReceiverRange() const

Source range of the receiver.

bool isClassMessage() const

Determine whether this is an class message to either a specified class or to super.

Definition ExprObjC.h:1259

const Expr * getInstanceReceiver() const

Definition ExprObjC.h:1271

unsigned getNumSelectorLocs() const

Definition ExprObjC.h:1441

const Expr *const * getArgs() const

Definition ExprObjC.h:1394

ReceiverKind getReceiverKind() const

Determine the kind of receiver that this message is being sent to.

Definition ExprObjC.h:1226

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:1456

QualType getReceiverType() const

Retrieve the receiver type to which this message is being directed.

SourceLocation getSelectorLoc(unsigned Index) const

Definition ExprObjC.h:1430

ExprIterator arg_iterator

Definition ExprObjC.h:1463

SourceLocation getSelectorStartLoc() const

Definition ExprObjC.h:1424

friend class ASTStmtWriter

Definition ExprObjC.h:1099

arg_iterator arg_begin()

Definition ExprObjC.h:1474

static bool classof(const Stmt *T)

Definition ExprObjC.h:1488

friend TrailingObjects

Definition ExprObjC.h:1100

void setSourceRange(SourceRange R)

Definition ExprObjC.h:1450

SourceLocation getRightLoc() const

Definition ExprObjC.h:1422

unsigned getNumArgs() const

Return the number of actual arguments in this message, not counting the receiver.

Definition ExprObjC.h:1387

friend class ASTStmtReader

Definition ExprObjC.h:1098

std::pair< const NamedDecl *, const WarnUnusedResultAttr * > getUnusedResultAttr(ASTContext &Ctx) const

Returns the WarnUnusedResultAttr that is declared on the callee or its return type declaration,...

Definition ExprObjC.h:1239

void setSelector(Selector S)

Definition ExprObjC.h:1356

bool hasUnusedResultAttr(ASTContext &Ctx) const

Returns true if this message send should warn on unused results.

Definition ExprObjC.h:1244

void setArg(unsigned Arg, Expr *ArgExpr)

setArg - Set the specified argument.

Definition ExprObjC.h:1410

arg_iterator arg_end()

Definition ExprObjC.h:1476

const_arg_iterator arg_begin() const

Definition ExprObjC.h:1480

ObjCMethodDecl - Represents an instance or class method declaration.

Selector getSelector() const

ObjCMethodFamily getMethodFamily() const

Determines the family of this method.

Represents one property declaration in an Objective-C interface.

Selector getSetterName() const

Selector getGetterName() const

bool isMessagingGetter() const

True if the property reference will result in a message to the getter.

Definition ExprObjC.h:733

child_range children()

Definition ExprObjC.h:782

ObjCPropertyDecl * getExplicitProperty() const

Definition ExprObjC.h:703

Selector getSetterSelector() const

Definition ExprObjC.h:724

bool isMessagingSetter() const

True if the property reference will result in a message to the setter.

Definition ExprObjC.h:740

ObjCMethodDecl * getImplicitPropertyGetter() const

Definition ExprObjC.h:708

ObjCPropertyRefExpr(ObjCMethodDecl *Getter, ObjCMethodDecl *Setter, QualType T, ExprValueKind VK, ExprObjectKind OK, SourceLocation IdLoc, SourceLocation ReceiverLoc, ObjCInterfaceDecl *Receiver)

Definition ExprObjC.h:686

ObjCPropertyRefExpr(ObjCMethodDecl *Getter, ObjCMethodDecl *Setter, QualType T, ExprValueKind VK, ExprObjectKind OK, SourceLocation IdLoc, Expr *Base)

Definition ExprObjC.h:665

void setIsMessagingSetter(bool val=true)

Definition ExprObjC.h:748

SourceLocation getReceiverLocation() const

Definition ExprObjC.h:757

const Expr * getBase() const

Definition ExprObjC.h:752

const_child_range children() const

Definition ExprObjC.h:790

static bool classof(const Stmt *T)

Definition ExprObjC.h:794

Expr * getBase()

Definition ExprObjC.h:753

bool isObjectReceiver() const

Definition ExprObjC.h:767

bool isExplicitProperty() const

Definition ExprObjC.h:701

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:774

void setIsMessagingGetter(bool val=true)

Definition ExprObjC.h:744

QualType getSuperReceiverType() const

Definition ExprObjC.h:759

bool isImplicitProperty() const

Definition ExprObjC.h:700

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:779

ObjCMethodDecl * getImplicitPropertySetter() const

Definition ExprObjC.h:713

ObjCInterfaceDecl * getClassReceiver() const

Definition ExprObjC.h:763

SourceLocation getLocation() const

Definition ExprObjC.h:755

ObjCPropertyRefExpr(ObjCPropertyDecl *PD, QualType t, ExprValueKind VK, ExprObjectKind OK, SourceLocation l, Expr *base)

Definition ExprObjC.h:648

friend class ASTStmtWriter

Definition ExprObjC.h:800

ObjCPropertyRefExpr(ObjCMethodDecl *Getter, ObjCMethodDecl *Setter, QualType T, ExprValueKind VK, ExprObjectKind OK, SourceLocation IdLoc, SourceLocation SuperLoc, QualType SuperTy)

Definition ExprObjC.h:675

Selector getGetterSelector() const

Definition ExprObjC.h:718

friend class ASTStmtReader

Definition ExprObjC.h:799

ObjCPropertyRefExpr(EmptyShell Empty)

Definition ExprObjC.h:697

QualType getReceiverType(const ASTContext &ctx) const

Determine the type of the base, regardless of the kind of receiver.

ObjCPropertyRefExpr(ObjCPropertyDecl *PD, QualType t, ExprValueKind VK, ExprObjectKind OK, SourceLocation l, SourceLocation sl, QualType st)

Definition ExprObjC.h:656

bool isClassReceiver() const

Definition ExprObjC.h:769

bool isSuperReceiver() const

Definition ExprObjC.h:768

Represents an Objective-C protocol declaration.

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:528

ObjCProtocolDecl * getProtocol() const

Definition ExprObjC.h:519

ObjCProtocolExpr(QualType T, ObjCProtocolDecl *protocol, SourceLocation at, SourceLocation protoLoc, SourceLocation rp)

Definition ExprObjC.h:510

SourceLocation getProtocolIdLoc() const

Definition ExprObjC.h:522

const_child_range children() const

Definition ExprObjC.h:536

void setProtocol(ObjCProtocolDecl *P)

Definition ExprObjC.h:520

void setRParenLoc(SourceLocation L)

Definition ExprObjC.h:526

void setAtLoc(SourceLocation L)

Definition ExprObjC.h:525

SourceLocation getRParenLoc() const

Definition ExprObjC.h:524

static bool classof(const Stmt *T)

Definition ExprObjC.h:540

SourceLocation getAtLoc() const

Definition ExprObjC.h:523

friend class ASTStmtWriter

Definition ExprObjC.h:508

child_range children()

Definition ExprObjC.h:532

ObjCProtocolExpr(EmptyShell Empty)

Definition ExprObjC.h:516

friend class ASTStmtReader

Definition ExprObjC.h:507

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:529

static bool classof(const Stmt *T)

Definition ExprObjC.h:489

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:474

void setSelector(Selector S)

Definition ExprObjC.h:467

unsigned getNumArgs() const

getNumArgs - Return the number of actual arguments to this call.

Definition ExprObjC.h:478

ObjCSelectorExpr(EmptyShell Empty)

Definition ExprObjC.h:463

ObjCSelectorExpr(QualType T, Selector selInfo, SourceLocation at, SourceLocation rp)

Definition ExprObjC.h:457

child_range children()

Definition ExprObjC.h:481

void setAtLoc(SourceLocation L)

Definition ExprObjC.h:471

SourceLocation getRParenLoc() const

Definition ExprObjC.h:470

const_child_range children() const

Definition ExprObjC.h:485

Selector getSelector() const

Definition ExprObjC.h:466

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:475

void setRParenLoc(SourceLocation L)

Definition ExprObjC.h:472

SourceLocation getAtLoc() const

Definition ExprObjC.h:469

child_range children()

Definition ExprObjC.h:76

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:73

const StringLiteral * getString() const

Definition ExprObjC.h:66

SourceLocation getAtLoc() const

Definition ExprObjC.h:69

void setAtLoc(SourceLocation L)

Definition ExprObjC.h:70

void setString(StringLiteral *S)

Definition ExprObjC.h:67

const_child_range children() const

Definition ExprObjC.h:78

ObjCStringLiteral(EmptyShell Empty)

Definition ExprObjC.h:62

static bool classof(const Stmt *T)

Definition ExprObjC.h:82

StringLiteral * getString()

Definition ExprObjC.h:65

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:72

ObjCStringLiteral(StringLiteral *SL, QualType T, SourceLocation L)

Definition ExprObjC.h:57

SourceLocation getBeginLoc() const LLVM_READONLY

Definition ExprObjC.h:869

Expr * getKeyExpr() const

Definition ExprObjC.h:878

SourceLocation getEndLoc() const LLVM_READONLY

Definition ExprObjC.h:873

void setRBracket(SourceLocation RB)

Definition ExprObjC.h:867

bool isArraySubscriptRefExpr() const

Definition ExprObjC.h:889

ObjCSubscriptRefExpr(EmptyShell Empty)

Definition ExprObjC.h:863

child_range children()

Definition ExprObjC.h:893

ObjCSubscriptRefExpr(Expr *base, Expr *key, QualType T, ExprValueKind VK, ExprObjectKind OK, ObjCMethodDecl *getMethod, ObjCMethodDecl *setMethod, SourceLocation RB)

Definition ExprObjC.h:853

void setKeyExpr(Stmt *S)

Definition ExprObjC.h:879

static bool classof(const Stmt *T)

Definition ExprObjC.h:901

void setBaseExpr(Stmt *S)

Definition ExprObjC.h:876

Expr * getBaseExpr() const

Definition ExprObjC.h:875

const_child_range children() const

Definition ExprObjC.h:897

friend class ASTStmtReader

Definition ExprObjC.h:906

ObjCMethodDecl * getAtIndexMethodDecl() const

Definition ExprObjC.h:881

SourceLocation getRBracket() const

Definition ExprObjC.h:866

ObjCMethodDecl * setAtIndexMethodDecl() const

Definition ExprObjC.h:885

A (possibly-)qualified type.

static QualType getFromOpaquePtr(const void *Ptr)

Smart pointer class that efficiently represents Objective-C method names.

void * getAsOpaquePtr() const

ObjCMethodFamily getMethodFamily() const

Derive the conventional family of this method.

bool isUnarySelector() const

unsigned getNumArgs() const

Encodes a location in the source.

A trivial tuple used to represent a source range.

SourceLocation getEnd() const

SourceLocation getBegin() const

Stmt - This represents one statement.

SourceLocation getEndLoc() const LLVM_READONLY

StmtIterator child_iterator

Child Iterators: All subclasses must implement 'children' to permit easy iteration over the substatem...

ConstCastIterator< Expr > ConstExprIterator

llvm::iterator_range< child_iterator > child_range

ConstStmtIterator const_child_iterator

ObjCIndirectCopyRestoreExprBitfields ObjCIndirectCopyRestoreExprBits

SourceLocation getBeginLoc() const LLVM_READONLY

llvm::iterator_range< const_child_iterator > const_child_range

CastIterator< Expr > ExprIterator

StringLiteral - This represents a string literal expression, e.g.

A container of type source information.

bool isSpecificPlaceholderType(unsigned K) const

Test for a specific placeholder type.

bool isIntegralOrEnumerationType() const

Determine whether this type is an integral or enumeration type.

const internal::VariadicAllOfMatcher< Type > type

Matches Types in the clang AST.

The JSON file list parser is used to communicate input to InstallAPI.

bool isa(CodeGen::Address addr)

SelectorLocationsKind

Whether all locations of the selector identifiers are in a "standard" position.

@ SelLoc_StandardWithSpace

For nullary selectors, immediately before the end: "[foo release]" / "-(void)release;" Or with a spac...

@ SelLoc_NonStandard

Non-standard.

ExprObjectKind

A further classification of the kind of object referenced by an l-value or x-value.

@ OK_Ordinary

An ordinary object is located at an address in memory.

@ OK_BitField

A bitfield object is a bitfield on a C or C++ record.

ExprDependence computeDependence(FullExpr *E)

@ Create

'create' clause, allowed on Compute and Combined constructs, plus 'data', 'enter data',...

ObjCMethodFamily

A family of Objective-C methods.

@ Result

The result type of a method or function.

const FunctionProtoType * T

ObjCBridgeCastKind

The kind of bridging performed by the Objective-C bridge cast.

CastKind

CastKind - The kind of operation required for a conversion.

SourceLocation getStandardSelectorLoc(unsigned Index, Selector Sel, bool WithArgSpace, ArrayRef< Expr * > Args, SourceLocation EndLoc)

Get the "standard" location of a selector identifier, e.g: For nullary selectors, immediately before ...

ExprValueKind

The categorization of expression values, currently following the C++11 scheme.

@ VK_PRValue

A pr-value expression (in the C++11 taxonomy) produces a temporary value.

@ VK_LValue

An l-value expression is a reference to an object with independent storage.

U cast(CodeGen::Address addr)

__UINTPTR_TYPE__ uintptr_t

An unsigned integer type with the property that any valid pointer to void can be converted to this ty...

An element in an Objective-C dictionary literal.

Definition ExprObjC.h:260

Expr * Value

The value of the dictionary element.

Definition ExprObjC.h:265

bool isPackExpansion() const

Determines whether this dictionary element is a pack expansion.

Definition ExprObjC.h:275

SourceLocation EllipsisLoc

The location of the ellipsis, if this is a pack expansion.

Definition ExprObjC.h:268

UnsignedOrNone NumExpansions

The number of elements this pack expansion will expand to, if this is a pack expansion and is known.

Definition ExprObjC.h:272

Expr * Key

The key for the dictionary element.

Definition ExprObjC.h:262

Internal struct to describes an element that is a pack expansion, used if any of the elements in the ...

Definition ExprObjC.h:291

SourceLocation EllipsisLoc

The location of the ellipsis, if this element is a pack expansion.

Definition ExprObjC.h:294

unsigned NumExpansionsPlusOne

If non-zero, the number of elements that this pack expansion will expand to (+1).

Definition ExprObjC.h:298

Internal struct for storing Key/value pair.

Definition ExprObjC.h:283

Expr * Value

Definition ExprObjC.h:285

Expr * Key

Definition ExprObjC.h:284

A placeholder type used to construct an empty shell of a type, that will be filled in later (e....