clang 22.0.0git
ExpressionTraits.cpp
Go to the documentation of this file.
1//===--- ExpressionTraits.cpp - Expression Traits Support -----------------===//
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 the expression traits support functions.
10//
11//===----------------------------------------------------------------------===//
12
14#include <cassert>
15using namespace clang;
16
17static constexpr const char *ExpressionTraitNames[] = {
18#define EXPRESSION_TRAIT(Spelling, Name, Key) #Name,
19#include "clang/Basic/TokenKinds.def"
20};
21
22static constexpr const char *ExpressionTraitSpellings[] = {
23#define EXPRESSION_TRAIT(Spelling, Name, Key) #Spelling,
24#include "clang/Basic/TokenKinds.def"
25};
26
28 assert(T <= ET_Last && "invalid enum value!");
29 return ExpressionTraitNames[T];
30}
31
33 assert(T <= ET_Last && "invalid enum value!");
35}
static constexpr const char * ExpressionTraitSpellings[]
static constexpr const char * ExpressionTraitNames[]
Defines enumerations for expression traits intrinsics.
The JSON file list parser is used to communicate input to InstallAPI.
const char * getTraitName(ExpressionTrait T) LLVM_READONLY
Return the internal name of type trait T. Never null.
const char * getTraitSpelling(ExpressionTrait T) LLVM_READONLY
Return the spelling of the type trait TT. Never null.
const FunctionProtoType * T