Sema::CUDADiagBuilder::CUDADiagBuilder(Kind K, SourceLocation Loc, unsigned DiagID, FunctionDecl *Fn, Sema &S) { switch (K) { case K_Nop: break; case K_Immediate: ImmediateDiagBuilder.emplace(S.Diag(Loc, DiagID)); break; case K_Deferred: assert(Fn && "Must have a function to attach the deferred diag to."); PartialDiagInfo.emplace(S, Loc, S.PDiag(DiagID), Fn); break; } }