rnk accepted this revision. rnk added a comment. This revision is now accepted and ready to land.
lgtm ================ Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:6707 +def note_called_by : Note<"called by %0">; def err_kern_type_not_void_return : Error< ---------------- Do you think it's worth trying to indicate why the root of the "called by" notes must be emitted? I'm not suggesting we do it in this patch, just wondering. ================ Comment at: clang/include/clang/Sema/Sema.h:9259 /// use this to avoid emitting the same deferred diag twice. - llvm::DenseSet<std::pair<FunctionDecl *, unsigned>> LocsWithCUDACallDiags; + llvm::DenseSet<std::pair<CanonicalDeclPtr<FunctionDecl>, unsigned>> + LocsWithCUDACallDiags; ---------------- So, part of me wants to use FunctionDeclAndLoc here instead of std::pair, but then you'd have to bring back all the hashing machinery instead of getting it for free. Up to you, I guess. ================ Comment at: clang/include/clang/Sema/Sema.h:9274 + llvm::DenseMap</* Callee = */ CanonicalDeclPtr<FunctionDecl>, + /* Caller = */ FunctionDeclAndLoc> + CUDAKnownEmittedFns; ---------------- I guess there can be many callers, but we always record the first one that caused this function to be emitted. https://reviews.llvm.org/D25704 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits