aboutsummaryrefslogtreecommitdiff
path: root/gcc/libgdiagnostics.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/libgdiagnostics.h')
-rw-r--r--gcc/libgdiagnostics.h44
1 files changed, 43 insertions, 1 deletions
diff --git a/gcc/libgdiagnostics.h b/gcc/libgdiagnostics.h
index 2ce0f4c..f957779 100644
--- a/gcc/libgdiagnostics.h
+++ b/gcc/libgdiagnostics.h
@@ -161,6 +161,7 @@ typedef struct diagnostic_logical_location diagnostic_logical_location;
enum diagnostic_logical_location_kind_t
{
+ /* Kinds within executable code. */
DIAGNOSTIC_LOGICAL_LOCATION_KIND_FUNCTION,
DIAGNOSTIC_LOGICAL_LOCATION_KIND_MEMBER,
DIAGNOSTIC_LOGICAL_LOCATION_KIND_MODULE,
@@ -168,7 +169,22 @@ enum diagnostic_logical_location_kind_t
DIAGNOSTIC_LOGICAL_LOCATION_KIND_TYPE,
DIAGNOSTIC_LOGICAL_LOCATION_KIND_RETURN_TYPE,
DIAGNOSTIC_LOGICAL_LOCATION_KIND_PARAMETER,
- DIAGNOSTIC_LOGICAL_LOCATION_KIND_VARIABLE
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_VARIABLE,
+
+ /* Kinds within XML or HTML documents. */
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_ELEMENT,
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_ATTRIBUTE,
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_TEXT,
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_COMMENT,
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_PROCESSING_INSTRUCTION,
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_DTD,
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_DECLARATION,
+
+ /* Kinds within JSON documents. */
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_OBJECT,
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_ARRAY,
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_PROPERTY,
+ DIAGNOSTIC_LOGICAL_LOCATION_KIND_VALUE
};
/* A "diagnostic" is an opaque bundle of state for a particular
@@ -487,6 +503,32 @@ diagnostic_manager_debug_dump_logical_location (const diagnostic_manager *diag_m
LIBGDIAGNOSTICS_PARAM_CAN_BE_NULL (2)
LIBGDIAGNOSTICS_PARAM_MUST_BE_NON_NULL (3);
+/* Accessors for logical locations (added in LIBGDIAGNOSTICS_ABI_1;
+ you can test for their presence using
+ #ifdef LIBDIAGNOSTICS_HAVE_LOGICAL_LOCATION_ACCESSORS
+*/
+#define LIBDIAGNOSTICS_HAVE_LOGICAL_LOCATION_ACCESSORS
+
+extern enum diagnostic_logical_location_kind_t
+diagnostic_logical_location_get_kind (const diagnostic_logical_location *loc)
+ LIBGDIAGNOSTICS_PARAM_MUST_BE_NON_NULL (1);
+
+extern const diagnostic_logical_location *
+diagnostic_logical_location_get_parent (const diagnostic_logical_location *loc)
+ LIBGDIAGNOSTICS_PARAM_MUST_BE_NON_NULL (1);
+
+extern const char *
+diagnostic_logical_location_get_short_name (const diagnostic_logical_location *loc)
+ LIBGDIAGNOSTICS_PARAM_MUST_BE_NON_NULL (1);
+
+extern const char *
+diagnostic_logical_location_get_fully_qualified_name (const diagnostic_logical_location *loc)
+ LIBGDIAGNOSTICS_PARAM_MUST_BE_NON_NULL (1);
+
+extern const char *
+diagnostic_logical_location_get_decorated_name (const diagnostic_logical_location *loc)
+ LIBGDIAGNOSTICS_PARAM_MUST_BE_NON_NULL (1);
+
/* Diagnostic groups. */
/* Begin a diagnostic group. All diagnostics emitted within