[Sema] Updated note for address spaces to print the type.
This allows to reuse the same diagnostic for OpenCL or CUDA. llvm-svn: 335358
This commit is contained in:
parent
0cde82ade5
commit
bf549bf402
|
@ -3683,8 +3683,8 @@ def note_ovl_candidate_bad_lvalue : Note<
|
|||
"%select{%ordinal4 argument|object argument}3">;
|
||||
def note_ovl_candidate_bad_addrspace : Note<
|
||||
"candidate %sub{select_ovl_candidate_kind}0,1,2 not viable: "
|
||||
"%select{%ordinal7|'this'}6 argument (%3) is in "
|
||||
"address space %4, but parameter must be in address space %5">;
|
||||
"address space mismatch in %select{%ordinal6|'this'}5 argument (%3), "
|
||||
"parameter type must be %4">;
|
||||
def note_ovl_candidate_bad_gc : Note<
|
||||
"candidate %sub{select_ovl_candidate_kind}0,1,2 not viable: "
|
||||
"%select{%ordinal7|'this'}6 argument (%3) has %select{no|__weak|__strong}4 "
|
||||
|
|
|
@ -9591,9 +9591,7 @@ static void DiagnoseBadConversion(Sema &S, OverloadCandidate *Cand,
|
|||
S.Diag(Fn->getLocation(), diag::note_ovl_candidate_bad_addrspace)
|
||||
<< (unsigned)FnKindPair.first << (unsigned)FnKindPair.second << FnDesc
|
||||
<< (FromExpr ? FromExpr->getSourceRange() : SourceRange()) << FromTy
|
||||
<< FromQs.getAddressSpaceAttributePrintValue()
|
||||
<< ToQs.getAddressSpaceAttributePrintValue()
|
||||
<< (unsigned)isObjectArgument << I + 1;
|
||||
<< ToTy << (unsigned)isObjectArgument << I + 1;
|
||||
MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
typedef int __attribute__((address_space(1))) int_1;
|
||||
typedef int __attribute__((address_space(2))) int_2;
|
||||
|
||||
void f0(int_1 &); // expected-note{{candidate function not viable: 1st argument ('int') is in address space 0, but parameter must be in address space 1}} \
|
||||
// expected-note{{candidate function not viable: 1st argument ('int_2' (aka '__attribute__((address_space(2))) int')) is in address space 2, but parameter must be in address space 1}}
|
||||
void f0(const int_1 &); // expected-note{{candidate function not viable: 1st argument ('int') is in address space 0, but parameter must be in address space 1}} \
|
||||
// expected-note{{candidate function not viable: 1st argument ('int_2' (aka '__attribute__((address_space(2))) int')) is in address space 2, but parameter must be in address space 1}}
|
||||
void f0(int_1 &); // expected-note{{candidate function not viable: address space mismatch in 1st argument ('int'), parameter type must be 'int_1 &' (aka '__attribute__((address_space(1))) int &')}} \
|
||||
// expected-note{{candidate function not viable: address space mismatch in 1st argument ('int_2' (aka '__attribute__((address_space(2))) int')), parameter type must be 'int_1 &' (aka '__attribute__((address_space(1))) int &')}}
|
||||
void f0(const int_1 &); // expected-note{{candidate function not viable: address space mismatch in 1st argument ('int'), parameter type must be 'const int_1 &' (aka 'const __attribute__((address_space(1))) int &')}} \
|
||||
// expected-note{{candidate function not viable: address space mismatch in 1st argument ('int_2' (aka '__attribute__((address_space(2))) int')), parameter type must be 'const int_1 &' (aka 'const __attribute__((address_space(1))) int &')}}
|
||||
|
||||
void test_f0() {
|
||||
int i;
|
||||
|
|
Loading…
Reference in New Issue