================
@@ -22,6 +23,67 @@ namespace llvm {
   class LLVMContext;
   class raw_ostream;
   class DILocation;
+  class Function;
+
+#if ENABLE_DEBUGLOC_COVERAGE_TRACKING
+  // Used to represent different "kinds" of DebugLoc, expressing that a 
DebugLoc
+  // is either ordinary, containing a valid DILocation, or otherwise describing
+  // the reason why the DebugLoc does not contain a valid DILocation.
+  enum class DebugLocKind : uint8_t {
+    // DebugLoc is expected to contain a valid DILocation.
+    Normal,
+    // DebugLoc intentionally does not have a valid DILocation; may be for a
+    // compiler-generated instruction, or an explicitly dropped location.
+    LineZero,
----------------
jryans wrote:

Hmm, I'd really prefer the name of this case to clearly state the "intentional" 
aspect. Perhaps `IntentionallyZero`...?

Another approach might be to have separate enum values for the different 
reasons, e.g. `CompilerGenerated`, `ExplicitlyDropped`, and whatever the others 
might be. Stating these cases very clearly, not just in comments, but also via 
enum value would appear to be a very valuable capturing of intent to me. 
(However, maybe it is too much trouble to do so...? Please say that if so.)

https://github.com/llvm/llvm-project/pull/107279
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to