Skip to content
This repository was archived by the owner on Mar 28, 2020. It is now read-only.

Commit 7eead0a

Browse files
AutomergerAutomerger
authored andcommitted
Propagating prior merge from 'llvm.org/master'.
2 parents 9ca2377 + 2b9f6f3 commit 7eead0a

File tree

15 files changed

+169
-93
lines changed

15 files changed

+169
-93
lines changed

lib/AST/ASTDiagnostic.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ class TemplateDiff {
497497
enum DiffKind {
498498
/// Incomplete or invalid node.
499499
Invalid,
500-
/// Another level of templates, requires that
500+
/// Another level of templates
501501
Template,
502502
/// Type difference, all type differences except those falling under
503503
/// the Template difference.
@@ -1523,12 +1523,14 @@ class TemplateDiff {
15231523
OS << FromTD->getNameAsString() << '<';
15241524
Tree.MoveToChild();
15251525
unsigned NumElideArgs = 0;
1526+
bool AllArgsElided = true;
15261527
do {
15271528
if (ElideType) {
15281529
if (Tree.NodeIsSame()) {
15291530
++NumElideArgs;
15301531
continue;
15311532
}
1533+
AllArgsElided = false;
15321534
if (NumElideArgs > 0) {
15331535
PrintElideArgs(NumElideArgs, Indent);
15341536
NumElideArgs = 0;
@@ -1539,8 +1541,12 @@ class TemplateDiff {
15391541
if (Tree.HasNextSibling())
15401542
OS << ", ";
15411543
} while (Tree.AdvanceSibling());
1542-
if (NumElideArgs > 0)
1543-
PrintElideArgs(NumElideArgs, Indent);
1544+
if (NumElideArgs > 0) {
1545+
if (AllArgsElided)
1546+
OS << "...";
1547+
else
1548+
PrintElideArgs(NumElideArgs, Indent);
1549+
}
15441550

15451551
Tree.Parent();
15461552
OS << ">";

lib/Driver/ToolChains.cpp

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,26 @@ void MachO::AddLinkRuntimeLib(const ArgList &Args, ArgStringList &CmdArgs,
319319
}
320320
}
321321

322+
StringRef Darwin::getOSLibraryNameSuffix() const {
323+
switch(TargetPlatform) {
324+
case DarwinPlatformKind::MacOS:
325+
return "osx";
326+
case DarwinPlatformKind::IPhoneOS:
327+
return "ios";
328+
case DarwinPlatformKind::IPhoneOSSimulator:
329+
return "iossim";
330+
case DarwinPlatformKind::TvOS:
331+
return "tvos";
332+
case DarwinPlatformKind::TvOSSimulator:
333+
return "tvossim";
334+
case DarwinPlatformKind::WatchOS:
335+
return "watchos";
336+
case DarwinPlatformKind::WatchOSSimulator:
337+
return "watchossim";
338+
}
339+
llvm_unreachable("Unsupported platform");
340+
}
341+
322342
void Darwin::addProfileRTLibs(const ArgList &Args,
323343
ArgStringList &CmdArgs) const {
324344
if (!needsProfileRT(Args)) return;
@@ -363,12 +383,11 @@ void DarwinClang::AddLinkSanitizerLibArgs(const ArgList &Args,
363383
// Sanitizer runtime libraries requires C++.
364384
AddCXXStdlibLibArgs(Args, CmdArgs);
365385
}
366-
// ASan is not supported on watchOS.
367-
assert(isTargetMacOS() || isTargetIOSSimulator());
368-
StringRef OS = isTargetMacOS() ? "osx" : "iossim";
386+
369387
AddLinkRuntimeLib(
370388
Args, CmdArgs,
371-
(Twine("libclang_rt.") + Sanitizer + "_" + OS + "_dynamic.dylib").str(),
389+
(Twine("libclang_rt.") + Sanitizer + "_" +
390+
getOSLibraryNameSuffix() + "_dynamic.dylib").str(),
372391
/*AlwaysLink*/ true, /*IsEmbedded*/ false,
373392
/*AddRPath*/ true);
374393

@@ -1221,8 +1240,7 @@ void Darwin::CheckObjCARC() const {
12211240

12221241
SanitizerMask Darwin::getSupportedSanitizers() const {
12231242
SanitizerMask Res = ToolChain::getSupportedSanitizers();
1224-
if (isTargetMacOS() || isTargetIOSSimulator())
1225-
Res |= SanitizerKind::Address;
1243+
Res |= SanitizerKind::Address;
12261244
if (isTargetMacOS()) {
12271245
if (!isMacosxVersionLT(10, 9))
12281246
Res |= SanitizerKind::Vptr;

lib/Driver/ToolChains.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,8 @@ class LLVM_LIBRARY_VISIBILITY Darwin : public MachO {
496496
return TargetVersion < VersionTuple(V0, V1, V2);
497497
}
498498

499+
StringRef getOSLibraryNameSuffix() const;
500+
499501
public:
500502
/// }
501503
/// @name ToolChain Implementation

lib/Format/ContinuationIndenter.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,8 @@ void ContinuationIndenter::addTokenOnCurrentLine(LineState &State, bool DryRun,
353353
// disallowing any further line breaks if there is no line break after the
354354
// opening parenthesis. Don't break if it doesn't conserve columns.
355355
if (Style.AlignAfterOpenBracket == FormatStyle::BAS_AlwaysBreak &&
356-
Previous.is(tok::l_paren) && State.Column > getNewLineColumn(State) &&
356+
Previous.isOneOf(tok::l_paren, TT_TemplateOpener, tok::l_square) &&
357+
State.Column > getNewLineColumn(State) &&
357358
(!Previous.Previous ||
358359
!Previous.Previous->isOneOf(tok::kw_for, tok::kw_while, tok::kw_switch)))
359360
State.Stack.back().NoLineBreak = true;

lib/Sema/SemaOpenMP.cpp

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1925,7 +1925,7 @@ static bool CheckNestingOfRegions(Sema &SemaRef, DSAStackTy *Stack,
19251925
// | simd | for simd | |
19261926
// | simd | master | |
19271927
// | simd | critical | |
1928-
// | simd | simd | |
1928+
// | simd | simd | * |
19291929
// | simd | sections | |
19301930
// | simd | section | |
19311931
// | simd | single | |
@@ -1959,7 +1959,7 @@ static bool CheckNestingOfRegions(Sema &SemaRef, DSAStackTy *Stack,
19591959
// | for simd | for simd | |
19601960
// | for simd | master | |
19611961
// | for simd | critical | |
1962-
// | for simd | simd | |
1962+
// | for simd | simd | * |
19631963
// | for simd | sections | |
19641964
// | for simd | section | |
19651965
// | for simd | single | |
@@ -1993,7 +1993,7 @@ static bool CheckNestingOfRegions(Sema &SemaRef, DSAStackTy *Stack,
19931993
// | parallel for simd| for simd | |
19941994
// | parallel for simd| master | |
19951995
// | parallel for simd| critical | |
1996-
// | parallel for simd| simd | |
1996+
// | parallel for simd| simd | * |
19971997
// | parallel for simd| sections | |
19981998
// | parallel for simd| section | |
19991999
// | parallel for simd| single | |
@@ -2434,7 +2434,7 @@ static bool CheckNestingOfRegions(Sema &SemaRef, DSAStackTy *Stack,
24342434
// | taskloop simd | for simd | |
24352435
// | taskloop simd | master | |
24362436
// | taskloop simd | critical | |
2437-
// | taskloop simd | simd | |
2437+
// | taskloop simd | simd | * |
24382438
// | taskloop simd | sections | |
24392439
// | taskloop simd | section | |
24402440
// | taskloop simd | single | |
@@ -2509,7 +2509,8 @@ static bool CheckNestingOfRegions(Sema &SemaRef, DSAStackTy *Stack,
25092509
ShouldBeInTargetRegion,
25102510
ShouldBeInTeamsRegion
25112511
} Recommend = NoRecommend;
2512-
if (isOpenMPSimdDirective(ParentRegion) && CurrentRegion != OMPD_ordered) {
2512+
if (isOpenMPSimdDirective(ParentRegion) && CurrentRegion != OMPD_ordered &&
2513+
CurrentRegion != OMPD_simd) {
25132514
// OpenMP [2.16, Nesting of Regions]
25142515
// OpenMP constructs may not be nested inside a simd region.
25152516
// OpenMP [2.8.1,simd Construct, Restrictions]
@@ -2667,20 +2668,18 @@ static bool CheckNestingOfRegions(Sema &SemaRef, DSAStackTy *Stack,
26672668
// If a target, target update, target data, target enter data, or
26682669
// target exit data construct is encountered during execution of a
26692670
// target region, the behavior is unspecified.
2670-
OpenMPDirectiveKind PreviousTargetExecutionDirective;
26712671
NestingProhibited = Stack->hasDirective(
2672-
[&PreviousTargetExecutionDirective](OpenMPDirectiveKind K,
2673-
const DeclarationNameInfo &DNI,
2674-
SourceLocation Loc) -> bool {
2672+
[&OffendingRegion](OpenMPDirectiveKind K,
2673+
const DeclarationNameInfo &DNI,
2674+
SourceLocation Loc) -> bool {
26752675
if (isOpenMPTargetExecutionDirective(K)) {
2676-
PreviousTargetExecutionDirective = K;
2676+
OffendingRegion = K;
26772677
return true;
26782678
} else
26792679
return false;
26802680
},
26812681
false /* don't skip top directive */);
26822682
CloseNesting = false;
2683-
OffendingRegion = PreviousTargetExecutionDirective;
26842683
}
26852684
if (NestingProhibited) {
26862685
SemaRef.Diag(StartLoc, diag::err_omp_prohibited_region)

lib/Sema/SemaTemplateInstantiate.cpp

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1512,7 +1512,7 @@ QualType Sema::SubstType(QualType T,
15121512
}
15131513

15141514
static bool NeedsInstantiationAsFunctionType(TypeSourceInfo *T) {
1515-
if (T->getType()->isInstantiationDependentType() ||
1515+
if (T->getType()->isInstantiationDependentType() ||
15161516
T->getType()->isVariablyModifiedType())
15171517
return true;
15181518

@@ -1521,23 +1521,13 @@ static bool NeedsInstantiationAsFunctionType(TypeSourceInfo *T) {
15211521
return false;
15221522

15231523
FunctionProtoTypeLoc FP = TL.castAs<FunctionProtoTypeLoc>();
1524-
for (unsigned I = 0, E = FP.getNumParams(); I != E; ++I) {
1525-
ParmVarDecl *P = FP.getParam(I);
1526-
1524+
for (ParmVarDecl *P : FP.getParams()) {
15271525
// This must be synthesized from a typedef.
15281526
if (!P) continue;
15291527

1530-
// The parameter's type as written might be dependent even if the
1531-
// decayed type was not dependent.
1532-
if (TypeSourceInfo *TSInfo = P->getTypeSourceInfo())
1533-
if (TSInfo->getType()->isInstantiationDependentType())
1534-
return true;
1535-
1536-
// TODO: currently we always rebuild expressions. When we
1537-
// properly get lazier about this, we should use the same
1538-
// logic to avoid rebuilding prototypes here.
1539-
if (P->hasDefaultArg())
1540-
return true;
1528+
// If there are any parameters, a new TypeSourceInfo that refers to the
1529+
// instantiated parameters must be built.
1530+
return true;
15411531
}
15421532

15431533
return false;
@@ -1556,7 +1546,7 @@ TypeSourceInfo *Sema::SubstFunctionDeclType(TypeSourceInfo *T,
15561546
assert(!ActiveTemplateInstantiations.empty() &&
15571547
"Cannot perform an instantiation without some context on the "
15581548
"instantiation stack");
1559-
1549+
15601550
if (!NeedsInstantiationAsFunctionType(T))
15611551
return T;
15621552

lib/StaticAnalyzer/Core/CheckerRegistry.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ static void collectCheckers(const CheckerRegistry::CheckerInfoList &checkers,
4949
CheckerOptInfo &opt, CheckerInfoSet &collected) {
5050
// Use a binary search to find the possible start of the package.
5151
CheckerRegistry::CheckerInfo packageInfo(nullptr, opt.getName(), "");
52-
CheckerRegistry::CheckerInfoList::const_iterator e = checkers.end();
52+
auto end = checkers.cend();
5353
CheckerRegistry::CheckerInfoList::const_iterator i =
54-
std::lower_bound(checkers.begin(), e, packageInfo, checkerNameLT);
54+
std::lower_bound(checkers.cbegin(), end, packageInfo, checkerNameLT);
5555

5656
// If we didn't even find a possible package, give up.
57-
if (i == e)
57+
if (i == end)
5858
return;
5959

6060
// If what we found doesn't actually start the package, give up.
@@ -73,7 +73,7 @@ static void collectCheckers(const CheckerRegistry::CheckerInfoList &checkers,
7373
size = packageSize->getValue();
7474

7575
// Step through all the checkers in the package.
76-
for (e = i+size; i != e; ++i) {
76+
for (auto checkEnd = i+size; i != checkEnd; ++i) {
7777
if (opt.isEnabled())
7878
collected.insert(&*i);
7979
else

test/Driver/darwin-sanitizer-ld.c

Lines changed: 60 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,6 @@
1010
// CHECK-ASAN: "-rpath" "@executable_path"
1111
// CHECK-ASAN: "-rpath" "{{.*}}lib{{.*}}darwin"
1212

13-
// RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
14-
// RUN: -fsanitize=address -mios-simulator-version-min=7.0 %s -o %t.o 2>&1 \
15-
// RUN: | FileCheck --check-prefix=CHECK-ASAN-IOSSIM %s
16-
17-
// CHECK-ASAN-IOSSIM: "{{.*}}ld{{(.exe)?}}"
18-
// CHECK-ASAN-IOSSIM: lc++
19-
// CHECK-ASAN-IOSSIM: libclang_rt.asan_iossim_dynamic.dylib"
20-
// CHECK-ASAN-IOSSIM: "-rpath" "@executable_path"
21-
// CHECK-ASAN-IOSSIM: "-rpath" "{{.*}}lib{{.*}}darwin"
22-
2313
// RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
2414
// RUN: -fPIC -shared -fsanitize=address %s -o %t.so 2>&1 \
2515
// RUN: | FileCheck --check-prefix=CHECK-DYN-ASAN %s
@@ -65,3 +55,63 @@
6555

6656
// CHECK-DYN-BOUNDS: "{{.*}}ld{{(.exe)?}}"
6757
// CHECK-DYN-BOUNDS-NOT: ubsan_osx
58+
59+
// RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
60+
// RUN: -fsanitize=address -mios-simulator-version-min=7.0 %s -o %t.o 2>&1 \
61+
// RUN: | FileCheck --check-prefix=CHECK-ASAN-IOSSIM %s
62+
63+
// CHECK-ASAN-IOSSIM: "{{.*}}ld{{(.exe)?}}"
64+
// CHECK-ASAN-IOSSIM: lc++
65+
// CHECK-ASAN-IOSSIM: libclang_rt.asan_iossim_dynamic.dylib"
66+
// CHECK-ASAN-IOSSIM: "-rpath" "@executable_path"
67+
// CHECK-ASAN-IOSSIM: "-rpath" "{{.*}}lib{{.*}}darwin"
68+
69+
// RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
70+
// RUN: -fsanitize=address -mtvos-simulator-version-min=8.3.0 %s -o %t.o 2>&1 \
71+
// RUN: | FileCheck --check-prefix=CHECK-ASAN-TVOSSIM %s
72+
73+
// CHECK-ASAN-TVOSSIM: "{{.*}}ld{{(.exe)?}}"
74+
// CHECK-ASAN-TVOSSIM: lc++
75+
// CHECK-ASAN-TVOSSIM: libclang_rt.asan_tvossim_dynamic.dylib"
76+
// CHECK-ASAN-TVOSSIM: "-rpath" "@executable_path"
77+
// CHECK-ASAN-TVOSSIM: "-rpath" "{{.*}}lib{{.*}}darwin"
78+
79+
// RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
80+
// RUN: -fsanitize=address -mwatchos-simulator-version-min=2.0.0 %s -o %t.o 2>&1 \
81+
// RUN: | FileCheck --check-prefix=CHECK-ASAN-WATCHOSSIM %s
82+
83+
// CHECK-ASAN-WATCHOSSIM: "{{.*}}ld{{(.exe)?}}"
84+
// CHECK-ASAN-WATCHOSSIM: lc++
85+
// CHECK-ASAN-WATCHOSSIM: libclang_rt.asan_watchossim_dynamic.dylib"
86+
// CHECK-ASAN-WATCHOSSIM: "-rpath" "@executable_path"
87+
// CHECK-ASAN-WATCHOSSIM: "-rpath" "{{.*}}lib{{.*}}darwin"
88+
89+
// RUN: %clang -no-canonical-prefixes -### -target armv7-apple-ios \
90+
// RUN: -fsanitize=address -miphoneos-version-min=7 %s -o %t.o 2>&1 \
91+
// RUN: | FileCheck --check-prefix=CHECK-ASAN-IOS %s
92+
93+
// CHECK-ASAN-IOS: "{{.*}}ld{{(.exe)?}}"
94+
// CHECK-ASAN-IOS: lc++
95+
// CHECK-ASAN-IOS: libclang_rt.asan_ios_dynamic.dylib"
96+
// CHECK-ASAN-IOS: "-rpath" "@executable_path"
97+
// CHECK-ASAN-IOS: "-rpath" "{{.*}}lib{{.*}}darwin"
98+
99+
// RUN: %clang -no-canonical-prefixes -### -target arm64-apple-tvos \
100+
// RUN: -fsanitize=address -mtvos-version-min=8.3 %s -o %t.o 2>&1 \
101+
// RUN: | FileCheck --check-prefix=CHECK-ASAN-TVOS %s
102+
103+
// CHECK-ASAN-TVOS: "{{.*}}ld{{(.exe)?}}"
104+
// CHECK-ASAN-TVOS: lc++
105+
// CHECK-ASAN-TVOS: libclang_rt.asan_tvos_dynamic.dylib"
106+
// CHECK-ASAN-TVOS: "-rpath" "@executable_path"
107+
// CHECK-ASAN-TVOS: "-rpath" "{{.*}}lib{{.*}}darwin"
108+
109+
// RUN: %clang -no-canonical-prefixes -### -target armv7k-apple-watchos \
110+
// RUN: -fsanitize=address -mwatchos-version-min=2.0 %s -o %t.o 2>&1 \
111+
// RUN: | FileCheck --check-prefix=CHECK-ASAN-WATCHOS %s
112+
113+
// CHECK-ASAN-WATCHOS: "{{.*}}ld{{(.exe)?}}"
114+
// CHECK-ASAN-WATCHOS: lc++
115+
// CHECK-ASAN-WATCHOS: libclang_rt.asan_watchos_dynamic.dylib"
116+
// CHECK-ASAN-WATCHOS: "-rpath" "@executable_path"
117+
// CHECK-ASAN-WATCHOS: "-rpath" "{{.*}}lib{{.*}}darwin"

test/Driver/fsanitize.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@
230230
// CHECK-VPTR-DARWIN-NEW: -fsanitize=alignment,vptr
231231

232232
// RUN: %clang -target armv7-apple-ios7 -miphoneos-version-min=7.0 -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-IOS
233-
// CHECK-ASAN-IOS: unsupported option '-fsanitize=address' for target 'arm-apple-ios7'
233+
// CHECK-ASAN-IOS: -fsanitize=address
234234

235235
// RUN: %clang -target i386-pc-openbsd -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-OPENBSD
236236
// CHECK-ASAN-OPENBSD: unsupported option '-fsanitize=address' for target 'i386-pc-openbsd'

test/Misc/diag-template-diffing-color.cpp

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,42 +34,38 @@ void set16(vector<vector<int> >) {}
3434
void test16() {
3535
set16(vector<const vector<int> >());
3636
}
37-
// CHECK: {{.*}}candidate function not viable: no known conversion from 'vector<[[CYAN]]const{{ ?}}[[RESET]]{{ ?}}vector<[...]>>' to 'vector<vector<[...]>>' for 1st argument
37+
// CHECK: {{.*}}candidate function not viable: no known conversion from 'vector<[[CYAN]]const{{ ?}}[[RESET]]{{ ?}}vector<...>>' to 'vector<vector<...>>' for 1st argument
3838
// TREE: {{.*}}candidate function not viable: no known conversion from argument type to parameter type for 1st argument
3939
// TREE: vector<
40-
// TREE: {{\[}}[[CYAN]]const{{ ?}}[[RESET]]{{ ?}}!= [[CYAN]](no qualifiers){{ ?}}[[RESET]]]{{ ?}}vector<
41-
// TREE: [...]>>
40+
// TREE: {{\[}}[[CYAN]]const{{ ?}}[[RESET]]{{ ?}}!= [[CYAN]](no qualifiers){{ ?}}[[RESET]]]{{ ?}}vector<...>>
4241

4342
void set17(vector<const vector<int> >) {}
4443
void test17() {
4544
set17(vector<vector<int> >());
4645
}
47-
// CHECK: candidate function not viable: no known conversion from 'vector<vector<[...]>>' to 'vector<[[CYAN]]const{{ ?}}[[RESET]]{{ ?}}vector<[...]>>' for 1st argument
46+
// CHECK: candidate function not viable: no known conversion from 'vector<vector<...>>' to 'vector<[[CYAN]]const{{ ?}}[[RESET]]{{ ?}}vector<...>>' for 1st argument
4847
// TREE: candidate function not viable: no known conversion from argument type to parameter type for 1st argument
4948
// TREE: vector<
50-
// TREE: {{\[}}[[CYAN]](no qualifiers){{ ?}}[[RESET]]{{ ?}}!= [[CYAN]]const[[RESET]]] vector<
51-
// TREE: [...]>>
49+
// TREE: {{\[}}[[CYAN]](no qualifiers){{ ?}}[[RESET]]{{ ?}}!= [[CYAN]]const[[RESET]]] vector<...>>
5250

5351
void set18(vector<volatile vector<int> >) {}
5452
void test18() {
5553
set18(vector<const vector<int> >());
5654
}
57-
// CHECK: candidate function not viable: no known conversion from 'vector<[[CYAN]]const{{ ?}}[[RESET]]{{ ?}}vector<[...]>>' to 'vector<[[CYAN]]volatile{{ ?}}[[RESET]]{{ ?}}vector<[...]>>' for 1st argument
55+
// CHECK: candidate function not viable: no known conversion from 'vector<[[CYAN]]const{{ ?}}[[RESET]]{{ ?}}vector<...>>' to 'vector<[[CYAN]]volatile{{ ?}}[[RESET]]{{ ?}}vector<...>>' for 1st argument
5856
// TREE: no matching function for call to 'set18'
5957
// TREE: candidate function not viable: no known conversion from argument type to parameter type for 1st argument
6058
// TREE: vector<
61-
// TREE: {{\[}}[[CYAN]]const{{ ?}}[[RESET]]{{ ?}}!= [[CYAN]]volatile[[RESET]]] vector<
62-
// TREE: [...]>>
59+
// TREE: {{\[}}[[CYAN]]const{{ ?}}[[RESET]]{{ ?}}!= [[CYAN]]volatile[[RESET]]] vector<...>>
6360

6461
void set19(vector<const volatile vector<int> >) {}
6562
void test19() {
6663
set19(vector<const vector<int> >());
6764
}
68-
// CHECK: candidate function not viable: no known conversion from 'vector<const vector<[...]>>' to 'vector<const [[CYAN]]volatile{{ ?}}[[RESET]]{{ ?}}vector<[...]>>' for 1st argument
65+
// CHECK: candidate function not viable: no known conversion from 'vector<const vector<...>>' to 'vector<const [[CYAN]]volatile{{ ?}}[[RESET]]{{ ?}}vector<...>>' for 1st argument
6966
// TREE: candidate function not viable: no known conversion from argument type to parameter type for 1st argument
7067
// TREE: vector<
71-
// TREE: [const != const [[CYAN]]volatile[[RESET]]] vector<
72-
// TREE: [...]>>
68+
// TREE: [const != const [[CYAN]]volatile[[RESET]]] vector<...>>
7369

7470
namespace default_args {
7571
template <int x, int y = 1+1, int z = 2>

0 commit comments

Comments
 (0)