Add the notion of deferred diagnostics.
This patch lets you create diagnostics that are emitted if and only if a
particular FunctionDecl is codegen'ed.
This is necessary for CUDA, where some constructs -- e.g. calls from
host+device functions to host functions when compiling for device -- are
allowed to appear in semantically-correct programs, but only if they're
Subscribers: cfe-commits, tra
Differential Revision: https://reviews.llvm.org/D23241