clang 20.0.0git
ObjCNoReturn.h
Go to the documentation of this file.
1//= ObjCNoReturn.h - Handling of Cocoa APIs known not to return --*- C++ -*---//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file implements special handling of recognizing ObjC API hooks that
10// do not return but aren't marked as such in API headers.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_CLANG_ANALYSIS_DOMAINSPECIFIC_OBJCNORETURN_H
15#define LLVM_CLANG_ANALYSIS_DOMAINSPECIFIC_OBJCNORETURN_H
16
18
19namespace clang {
20
21class ASTContext;
22class ObjCMessageExpr;
23
25 /// Cached "raise" selector.
26 Selector RaiseSel;
27
28 /// Cached identifier for "NSException".
29 IdentifierInfo *NSExceptionII;
30
31 enum { NUM_RAISE_SELECTORS = 2 };
32
33 /// Cached set of selectors in NSException that are 'noreturn'.
34 Selector NSExceptionInstanceRaiseSelectors[NUM_RAISE_SELECTORS];
35
36public:
38
39 /// Return true if the given message expression is known to never
40 /// return.
41 bool isImplicitNoReturn(const ObjCMessageExpr *ME);
42};
43}
44
45#endif
Defines the clang::IdentifierInfo, clang::IdentifierTable, and clang::Selector interfaces.
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Definition: ASTContext.h:187
One of these records is kept for each identifier that is lexed.
An expression that sends a message to the given Objective-C object or class.
Definition: ExprObjC.h:945
bool isImplicitNoReturn(const ObjCMessageExpr *ME)
Return true if the given message expression is known to never return.
Smart pointer class that efficiently represents Objective-C method names.
The JSON file list parser is used to communicate input to InstallAPI.