[clang] [llvm] [DLCov 2/5] Implement DebugLoc coverage tracking (PR #107279)

Stephen Tozer via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 23 14:04:44 PDT 2024


================
@@ -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,
----------------
SLTozer wrote:

Yeah, I didn't have a good name thought up for this - IntentionallyZero might be good, though even the word "Intentional" I'm not 100% on. Long run, the goal is to split this category into different subcategories as you suggested, but only at the point where there is some meaning to separating them - until then I felt it would be premature to try to assign categories, since it's not fully clear what they would be.

https://github.com/llvm/llvm-project/pull/107279


More information about the llvm-commits mailing list