Skip to content

Commit ebd8823

Browse files
authored
Merge pull request #96 from sx-aurora-dev/feature/merge-upstream-20210929
Feature/merge upstream 20210929
2 parents 8848806 + fa80fb9 commit ebd8823

File tree

712 files changed

+18967
-6414
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

712 files changed

+18967
-6414
lines changed

clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,8 @@ void ExpandModularHeadersPPCallbacks::PragmaOpenCLExtension(
234234
parseToLocation(NameLoc);
235235
}
236236
void ExpandModularHeadersPPCallbacks::PragmaWarning(SourceLocation Loc,
237-
StringRef, ArrayRef<int>) {
237+
PragmaWarningSpecifier,
238+
ArrayRef<int>) {
238239
parseToLocation(Loc);
239240
}
240241
void ExpandModularHeadersPPCallbacks::PragmaWarningPush(SourceLocation Loc,

clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ class ExpandModularHeadersPPCallbacks : public PPCallbacks {
9494
SrcMgr::CharacteristicKind) override;
9595
void PragmaOpenCLExtension(SourceLocation NameLoc, const IdentifierInfo *,
9696
SourceLocation StateLoc, unsigned) override;
97-
void PragmaWarning(SourceLocation Loc, StringRef, ArrayRef<int>) override;
97+
void PragmaWarning(SourceLocation Loc, PragmaWarningSpecifier,
98+
ArrayRef<int>) override;
9899
void PragmaWarningPush(SourceLocation Loc, int) override;
99100
void PragmaWarningPop(SourceLocation Loc) override;
100101
void PragmaAssumeNonNullBegin(SourceLocation Loc) override;

clang-tools-extra/clang-tidy/readability/UppercaseLiteralSuffixCheck.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "clang/Lex/Lexer.h"
1414
#include "llvm/ADT/Optional.h"
1515
#include "llvm/ADT/SmallString.h"
16+
#include <cctype>
1617

1718
using namespace clang::ast_matchers;
1819

@@ -134,6 +135,11 @@ shouldReplaceLiteralSuffix(const Expr &Literal,
134135
CharSourceRange::getTokenRange(*Range), SM, LO, &Invalid);
135136
assert(!Invalid && "Failed to retrieve the source text.");
136137

138+
// Make sure the first character is actually a digit, instead of
139+
// something else, like a non-type template parameter.
140+
if (!std::isdigit(static_cast<unsigned char>(LiteralSourceText.front())))
141+
return llvm::None;
142+
137143
size_t Skip = 0;
138144

139145
// Do we need to ignore something before actually looking for the suffix?

clang-tools-extra/docs/clang-tidy/checks/bugprone-virtual-near-miss.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ Example:
1515
};
1616

1717
struct Derived : Base {
18-
virtual funk();
18+
virtual void funk();
1919
// warning: 'Derived::funk' has a similar name and the same signature as virtual method 'Base::func'; did you mean to override it?
2020
};

clang-tools-extra/docs/clang-tidy/checks/performance-type-promotion-in-math-fn.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ performance-type-promotion-in-math-fn
66
Finds calls to C math library functions (from ``math.h`` or, in C++, ``cmath``)
77
with implicit ``float`` to ``double`` promotions.
88

9-
For example, warns on ``::sin(0.f)``, because this funciton's parameter is a
9+
For example, warns on ``::sin(0.f)``, because this function's parameter is a
1010
double. You probably meant to call ``std::sin(0.f)`` (in C++), or ``sinf(0.f)``
1111
(in C).
1212

clang-tools-extra/pp-trace/PPCallbacksTracker.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@ static const char *const PragmaMessageKindStrings[] = {
7878
"PMK_Message", "PMK_Warning", "PMK_Error"
7979
};
8080

81+
// PragmaWarningSpecifier strings.
82+
static const char *const PragmaWarningSpecifierStrings[] = {
83+
"PWS_Default", "PWS_Disable", "PWS_Error", "PWS_Once", "PWS_Suppress",
84+
"PWS_Level1", "PWS_Level2", "PWS_Level3", "PWS_Level4",
85+
};
86+
8187
// ConditionValueKind strings.
8288
static const char *const ConditionValueKindStrings[] = {
8389
"CVK_NotEvaluated", "CVK_False", "CVK_True"
@@ -267,11 +273,11 @@ void PPCallbacksTracker::PragmaOpenCLExtension(SourceLocation NameLoc,
267273

268274
// Callback invoked when a #pragma warning directive is read.
269275
void PPCallbacksTracker::PragmaWarning(SourceLocation Loc,
270-
llvm::StringRef WarningSpec,
276+
PragmaWarningSpecifier WarningSpec,
271277
llvm::ArrayRef<int> Ids) {
272278
beginCallback("PragmaWarning");
273279
appendArgument("Loc", Loc);
274-
appendArgument("WarningSpec", WarningSpec);
280+
appendArgument("WarningSpec", WarningSpec, PragmaWarningSpecifierStrings);
275281

276282
std::string Str;
277283
llvm::raw_string_ostream SS(Str);

clang-tools-extra/pp-trace/PPCallbacksTracker.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ class PPCallbacksTracker : public PPCallbacks {
121121
diag::Severity mapping, llvm::StringRef Str) override;
122122
void PragmaOpenCLExtension(SourceLocation NameLoc, const IdentifierInfo *Name,
123123
SourceLocation StateLoc, unsigned State) override;
124-
void PragmaWarning(SourceLocation Loc, llvm::StringRef WarningSpec,
124+
void PragmaWarning(SourceLocation Loc, PragmaWarningSpecifier WarningSpec,
125125
llvm::ArrayRef<int> Ids) override;
126126
void PragmaWarningPush(SourceLocation Loc, int Level) override;
127127
void PragmaWarningPop(SourceLocation Loc) override;

clang-tools-extra/test/clang-tidy/checkers/readability-uppercase-literal-suffix-integer.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,3 +270,29 @@ void c() { l &a(); }
270270
void d();
271271
void d() { c<b>(); }
272272
} // namespace
273+
274+
// Check that non-type template parameters do not cause any diags.
275+
// https://bugs.llvm.org/show_bug.cgi?id=51790
276+
template <int capacity>
277+
struct Vector {
278+
static constexpr int kCapacity = capacity;
279+
};
280+
281+
template <int capacity>
282+
constexpr int Vector<capacity>::kCapacity;
283+
// CHECK-MESSAGES-NOT: :[[@LINE-1]]:22: warning: integer literal has suffix 'ity', which is not uppercase
284+
285+
template <int foo1u>
286+
struct Foo {
287+
static constexpr int kFoo = foo1u;
288+
};
289+
290+
template <int foo1u>
291+
constexpr int Foo<foo1u>::kFoo;
292+
// CHECK-MESSAGES-NOT: :[[@LINE-1]]:19: warning: integer literal has suffix 'u', which is not uppercase
293+
294+
// The template needs to be instantiated for diagnostics to show up
295+
void test_non_type_template_parameter() {
296+
int x = Vector<10>::kCapacity;
297+
int f = Foo<10>::kFoo;
298+
}

clang-tools-extra/test/pp-trace/pp-trace-pragma-ms.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,15 +86,15 @@
8686
// CHECK-NEXT: Introducer: PIK_HashPragma
8787
// CHECK-NEXT: - Callback: PragmaWarning
8888
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-pragma-ms.cpp:17:9"
89-
// CHECK-NEXT: WarningSpec: disable
89+
// CHECK-NEXT: WarningSpec: PWS_Disable
9090
// CHECK-NEXT: Ids: [1, 2, 3]
9191
// CHECK-NEXT: - Callback: PragmaWarning
9292
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-pragma-ms.cpp:17:9"
93-
// CHECK-NEXT: WarningSpec: error
93+
// CHECK-NEXT: WarningSpec: PWS_Error
9494
// CHECK-NEXT: Ids: [4, 5, 6]
9595
// CHECK-NEXT: - Callback: PragmaWarning
9696
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-pragma-ms.cpp:17:9"
97-
// CHECK-NEXT: WarningSpec: suppress
97+
// CHECK-NEXT: WarningSpec: PWS_Suppress
9898
// CHECK-NEXT: Ids: [7, 8, 9]
9999
// CHECK-NEXT: - Callback: EndOfMainFile
100100
// CHECK-NEXT: ...

clang/docs/Block-ABI-Apple.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ the following form:
4646
int reserved;
4747
R (*invoke)(struct Block_literal_1 *, P...);
4848
struct Block_descriptor_1 {
49-
unsigned long int reserved; // NULL
49+
unsigned long int reserved; // NULL
5050
unsigned long int size; // sizeof(struct Block_literal_1)
5151
// optional helper functions
5252
void (*copy_helper)(void *dst, void *src); // IFF (1<<25)

0 commit comments

Comments
 (0)