summaryrefslogtreecommitdiff
path: root/include/clang/Basic/Specifiers.h
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-08-20 20:50:49 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-08-20 20:50:49 +0000
commit2298981669bf3bd63335a4be179bc0f96823a8f4 (patch)
tree1cbe2eb27f030d2d70b80ee5ca3c86bee7326a9f /include/clang/Basic/Specifiers.h
parent9a83721404652cea39e9f02ae3e3b5c964602a5c (diff)
Notes
Diffstat (limited to 'include/clang/Basic/Specifiers.h')
-rw-r--r--include/clang/Basic/Specifiers.h36
1 files changed, 32 insertions, 4 deletions
diff --git a/include/clang/Basic/Specifiers.h b/include/clang/Basic/Specifiers.h
index 0af01e45437d0..d1236e798e5d2 100644
--- a/include/clang/Basic/Specifiers.h
+++ b/include/clang/Basic/Specifiers.h
@@ -1,9 +1,8 @@
//===--- Specifiers.h - Declaration and Type Specifiers ---------*- C++ -*-===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
///
@@ -21,6 +20,21 @@
#include "llvm/Support/ErrorHandling.h"
namespace clang {
+
+ /// Define the meaning of possible values of the kind in ExplicitSpecifier.
+ enum class ExplicitSpecKind : unsigned {
+ ResolvedFalse,
+ ResolvedTrue,
+ Unresolved,
+ };
+
+ /// Define the kind of constexpr specifier.
+ enum ConstexprSpecKind {
+ CSK_unspecified,
+ CSK_constexpr,
+ CSK_consteval
+ };
+
/// Specifies the width of a type, e.g., short, long, or long long.
enum TypeSpecifierWidth {
TSW_unspecified,
@@ -141,6 +155,20 @@ namespace clang {
OK_ObjCSubscript
};
+ /// The reason why a DeclRefExpr does not constitute an odr-use.
+ enum NonOdrUseReason {
+ /// This is an odr-use.
+ NOUR_None = 0,
+ /// This name appears in an unevaluated operand.
+ NOUR_Unevaluated,
+ /// This name appears as a potential result of an lvalue-to-rvalue
+ /// conversion that is a constant expression.
+ NOUR_Constant,
+ /// This name appears as a potential result of a discarded value
+ /// expression.
+ NOUR_Discarded,
+ };
+
/// Describes the kind of template specialization that a
/// particular template specialization declaration represents.
enum TemplateSpecializationKind {