readelf: Fix printing of DW_FORM_strx and DW_MACRO parsing

Message ID 20240504221501.443575-1-mark@klomp.org
State Committed
Headers
Series readelf: Fix printing of DW_FORM_strx and DW_MACRO parsing |

Commit Message

Mark Wielaard May 4, 2024, 10:15 p.m. UTC
  print_form_data didn't take the offset_len (4 or 8 bytes) into account
causing the wrong entry to be read from .debug_str_offsets.
print_debug_macro_section did sanity checking before calling
print_form_data, which does sanity checking itself. The sanity check
for DW_FORM_strx was wrong in print_debug_macro_section (but correct
in print_form_data).

Add a new testfile for run-readelf-macro.sh, this one compiled with
clang -gdwarf-5 -fdebug-macro.

      * src/readelf.c (print_form_data): Multiply by offset_len for
      strx_val.
      (print_debug_macro_section): Remove sanity checks before calling
      print_form_data.
      * tests/testfileclangmacro.bz2: New testfile.
      * tests/Makefile.am (EXTRA_DIST): Add testfileclangmacro.bz2.
      * tests/run-readelf-macro.sh: Add testfileclangmacro output.

Signed-off-by: Mark Wielaard <mark@klomp.org>
---
 src/readelf.c                |  13 +-
 tests/Makefile.am            |   2 +-
 tests/run-readelf-macro.sh   | 817 ++++++++++++++++++++++++++++++++++-
 tests/testfileclangmacro.bz2 | Bin 0 -> 7985 bytes
 4 files changed, 820 insertions(+), 12 deletions(-)
 create mode 100755 tests/testfileclangmacro.bz2
  

Comments

Mark Wielaard May 14, 2024, 3:07 p.m. UTC | #1
Hi,

On Sun, 2024-05-05 at 00:15 +0200, Mark Wielaard wrote:
> print_form_data didn't take the offset_len (4 or 8 bytes) into account
> causing the wrong entry to be read from .debug_str_offsets.
> print_debug_macro_section did sanity checking before calling
> print_form_data, which does sanity checking itself. The sanity check
> for DW_FORM_strx was wrong in print_debug_macro_section (but correct
> in print_form_data).
> 
> Add a new testfile for run-readelf-macro.sh, this one compiled with
> clang -gdwarf-5 -fdebug-macro.
> 
>       * src/readelf.c (print_form_data): Multiply by offset_len for
>       strx_val.
>       (print_debug_macro_section): Remove sanity checks before calling
>       print_form_data.
>       * tests/testfileclangmacro.bz2: New testfile.
>       * tests/Makefile.am (EXTRA_DIST): Add testfileclangmacro.bz2.
>       * tests/run-readelf-macro.sh: Add testfileclangmacro output.

Pushed to main.

Cheers,

Mark
  

Patch

diff --git a/src/readelf.c b/src/readelf.c
index 0e931184ed38..c945b371966f 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -8869,11 +8869,12 @@  print_form_data (Dwarf *dbg, int form, const unsigned char *readp,
     strx_val:
       data = dbg->sectiondata[IDX_debug_str_offsets];
       if (data == NULL
-	  || data->d_size - str_offsets_base < val)
+	  || data->d_size - str_offsets_base < val * offset_len)
 	str = "???";
       else
 	{
-	  const unsigned char *strreadp = data->d_buf + str_offsets_base + val;
+	  const unsigned char *strreadp = (data->d_buf + str_offsets_base
+					   + val * offset_len);
 	  const unsigned char *strreadendp = data->d_buf + data->d_size;
 	  if ((size_t) (strreadendp - strreadp) < offset_len)
 	    str = "???";
@@ -10853,8 +10854,6 @@  print_debug_macro_section (Dwfl_Module *dwflmod __attribute__ ((unused)),
 
 	    case DW_MACRO_define_sup:
 	      get_uleb128 (u128, readp, readendp);
-	      if (readp + offset_len > readendp)
-		goto invalid_data;
 	      printf ("%*s#define ", level, "");
 	      readp =  print_form_data (dbg, DW_FORM_strp_sup,
 					readp, readendp, offset_len,
@@ -10864,8 +10863,6 @@  print_debug_macro_section (Dwfl_Module *dwflmod __attribute__ ((unused)),
 
 	    case DW_MACRO_undef_sup:
 	      get_uleb128 (u128, readp, readendp);
-	      if (readp + offset_len > readendp)
-		goto invalid_data;
 	      printf ("%*s#undef ", level, "");
 	      readp =  print_form_data (dbg, DW_FORM_strp_sup,
 					readp, readendp, offset_len,
@@ -10887,8 +10884,6 @@  print_debug_macro_section (Dwfl_Module *dwflmod __attribute__ ((unused)),
 
 	    case DW_MACRO_define_strx:
 	      get_uleb128 (u128, readp, readendp);
-	      if (readp + offset_len > readendp)
-		goto invalid_data;
 	      printf ("%*s#define ", level, "");
 	      readp =  print_form_data (dbg, DW_FORM_strx,
 					readp, readendp, offset_len,
@@ -10898,8 +10893,6 @@  print_debug_macro_section (Dwfl_Module *dwflmod __attribute__ ((unused)),
 
 	    case DW_MACRO_undef_strx:
 	      get_uleb128 (u128, readp, readendp);
-	      if (readp + offset_len > readendp)
-		goto invalid_data;
 	      printf ("%*s#undef ", level, "");
 	      readp =  print_form_data (dbg, DW_FORM_strx,
 					readp, readendp, offset_len,
diff --git a/tests/Makefile.am b/tests/Makefile.am
index b7fb72384f32..46f553a9b991 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -378,7 +378,7 @@  EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
 	     testfile46.bz2 testfile47.bz2 testfile48.bz2 testfile48.debug.bz2 \
 	     testfile49.bz2 testfile50.bz2 testfile51.bz2 \
 	     testfile-macros-0xff.bz2 \
-	     run-readelf-macro.sh testfilemacro.bz2 \
+	     run-readelf-macro.sh testfilemacro.bz2 testfileclangmacro.bz2 \
 	     run-readelf-loc.sh testfileloc.bz2 \
 	     splitdwarf4-not-split4.dwo.bz2 \
 	     testfile-splitdwarf4-not-split4.debug.bz2 \
diff --git a/tests/run-readelf-macro.sh b/tests/run-readelf-macro.sh
index 8b17f7da6e05..92401b59ff35 100755
--- a/tests/run-readelf-macro.sh
+++ b/tests/run-readelf-macro.sh
@@ -342,4 +342,819 @@  DWARF section [32] '.debug_macro' at offset 0x2480:
 
 EOF
 
-exit 0
+# Same sources as above, but now using clang
+# gcc -g3 -c hello.c
+# gcc -g3 -c world.c
+# gcc -g3 -o testfilemacro hello.o world.o
+
+# clang -gdwarf-5 -fdebug-macro -c hello.c
+# clang -gdwarf-5 -fdebug-macro -c world.c
+# clang -gdwarf-5 -fdebug-macro -o testfileclangmacro hello.o world.o
+
+testfiles testfileclangmacro
+
+testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=macro testfileclangmacro <<\EOF
+
+DWARF section [33] '.debug_macro' at offset 0x5b9b:
+
+ Offset:             0x0
+ Version:            5
+ Flag:               0x2 (debug_line_offset)
+ Offset length:      4
+ .debug_line offset: 0x0
+
+ start_file 0, [0] /home/mark/src/tests/hello.c
+  start_file 1, [1] ./common.h
+   #define ONE 1 (9), line 1 (strx)
+   #define TWO 2 (10), line 2 (strx)
+   #define THREE 3 (11), line 3 (strx)
+   #define WORLD "World" (12), line 5 (strx)
+   #define A 'a' (13), line 9 (strx)
+   #define B b (14), line 10 (strx)
+   #define C "C" (15), line 11 (strx)
+   #undef THREE (16), line 14 (strx)
+   #define THREE(ARG1,ARG2,ARG3) ARG3 (17), line 15 (strx)
+  end_file
+ end_file
+ #define __llvm__ 1 (18), line 0 (strx)
+ #define __clang__ 1 (19), line 0 (strx)
+ #define __clang_major__ 17 (20), line 0 (strx)
+ #define __clang_minor__ 0 (21), line 0 (strx)
+ #define __clang_patchlevel__ 6 (22), line 0 (strx)
+ #define __clang_version__ "17.0.6 (Fedora 17.0.6-2.fc39)" (23), line 0 (strx)
+ #define __GNUC__ 4 (24), line 0 (strx)
+ #define __GNUC_MINOR__ 2 (25), line 0 (strx)
+ #define __GNUC_PATCHLEVEL__ 1 (26), line 0 (strx)
+ #define __GXX_ABI_VERSION 1002 (27), line 0 (strx)
+ #define __ATOMIC_RELAXED 0 (28), line 0 (strx)
+ #define __ATOMIC_CONSUME 1 (29), line 0 (strx)
+ #define __ATOMIC_ACQUIRE 2 (30), line 0 (strx)
+ #define __ATOMIC_RELEASE 3 (31), line 0 (strx)
+ #define __ATOMIC_ACQ_REL 4 (32), line 0 (strx)
+ #define __ATOMIC_SEQ_CST 5 (33), line 0 (strx)
+ #define __OPENCL_MEMORY_SCOPE_WORK_ITEM 0 (34), line 0 (strx)
+ #define __OPENCL_MEMORY_SCOPE_WORK_GROUP 1 (35), line 0 (strx)
+ #define __OPENCL_MEMORY_SCOPE_DEVICE 2 (36), line 0 (strx)
+ #define __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES 3 (37), line 0 (strx)
+ #define __OPENCL_MEMORY_SCOPE_SUB_GROUP 4 (38), line 0 (strx)
+ #define __FPCLASS_SNAN 0x0001 (39), line 0 (strx)
+ #define __FPCLASS_QNAN 0x0002 (40), line 0 (strx)
+ #define __FPCLASS_NEGINF 0x0004 (41), line 0 (strx)
+ #define __FPCLASS_NEGNORMAL 0x0008 (42), line 0 (strx)
+ #define __FPCLASS_NEGSUBNORMAL 0x0010 (43), line 0 (strx)
+ #define __FPCLASS_NEGZERO 0x0020 (44), line 0 (strx)
+ #define __FPCLASS_POSZERO 0x0040 (45), line 0 (strx)
+ #define __FPCLASS_POSSUBNORMAL 0x0080 (46), line 0 (strx)
+ #define __FPCLASS_POSNORMAL 0x0100 (47), line 0 (strx)
+ #define __FPCLASS_POSINF 0x0200 (48), line 0 (strx)
+ #define __PRAGMA_REDEFINE_EXTNAME 1 (49), line 0 (strx)
+ #define __VERSION__ "Clang 17.0.6 (Fedora 17.0.6-2.fc39)" (50), line 0 (strx)
+ #define __OBJC_BOOL_IS_BOOL 0 (51), line 0 (strx)
+ #define __CONSTANT_CFSTRINGS__ 1 (52), line 0 (strx)
+ #define __clang_literal_encoding__ "UTF-8" (53), line 0 (strx)
+ #define __clang_wide_literal_encoding__ "UTF-32" (54), line 0 (strx)
+ #define __ORDER_LITTLE_ENDIAN__ 1234 (55), line 0 (strx)
+ #define __ORDER_BIG_ENDIAN__ 4321 (56), line 0 (strx)
+ #define __ORDER_PDP_ENDIAN__ 3412 (57), line 0 (strx)
+ #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ (58), line 0 (strx)
+ #define __LITTLE_ENDIAN__ 1 (59), line 0 (strx)
+ #define _LP64 1 (60), line 0 (strx)
+ #define __LP64__ 1 (61), line 0 (strx)
+ #define __CHAR_BIT__ 8 (62), line 0 (strx)
+ #define __BOOL_WIDTH__ 8 (63), line 0 (strx)
+ #define __SHRT_WIDTH__ 16 (64), line 0 (strx)
+ #define __INT_WIDTH__ 32 (65), line 0 (strx)
+ #define __LONG_WIDTH__ 64 (66), line 0 (strx)
+ #define __LLONG_WIDTH__ 64 (67), line 0 (strx)
+ #define __BITINT_MAXWIDTH__ 8388608 (68), line 0 (strx)
+ #define __SCHAR_MAX__ 127 (69), line 0 (strx)
+ #define __SHRT_MAX__ 32767 (70), line 0 (strx)
+ #define __INT_MAX__ 2147483647 (71), line 0 (strx)
+ #define __LONG_MAX__ 9223372036854775807L (72), line 0 (strx)
+ #define __LONG_LONG_MAX__ 9223372036854775807LL (73), line 0 (strx)
+ #define __WCHAR_MAX__ 2147483647 (74), line 0 (strx)
+ #define __WCHAR_WIDTH__ 32 (75), line 0 (strx)
+ #define __WINT_MAX__ 4294967295U (76), line 0 (strx)
+ #define __WINT_WIDTH__ 32 (77), line 0 (strx)
+ #define __INTMAX_MAX__ 9223372036854775807L (78), line 0 (strx)
+ #define __INTMAX_WIDTH__ 64 (79), line 0 (strx)
+ #define __SIZE_MAX__ 18446744073709551615UL (80), line 0 (strx)
+ #define __SIZE_WIDTH__ 64 (81), line 0 (strx)
+ #define __UINTMAX_MAX__ 18446744073709551615UL (82), line 0 (strx)
+ #define __UINTMAX_WIDTH__ 64 (83), line 0 (strx)
+ #define __PTRDIFF_MAX__ 9223372036854775807L (84), line 0 (strx)
+ #define __PTRDIFF_WIDTH__ 64 (85), line 0 (strx)
+ #define __INTPTR_MAX__ 9223372036854775807L (86), line 0 (strx)
+ #define __INTPTR_WIDTH__ 64 (87), line 0 (strx)
+ #define __UINTPTR_MAX__ 18446744073709551615UL (88), line 0 (strx)
+ #define __UINTPTR_WIDTH__ 64 (89), line 0 (strx)
+ #define __SIZEOF_DOUBLE__ 8 (90), line 0 (strx)
+ #define __SIZEOF_FLOAT__ 4 (91), line 0 (strx)
+ #define __SIZEOF_INT__ 4 (92), line 0 (strx)
+ #define __SIZEOF_LONG__ 8 (93), line 0 (strx)
+ #define __SIZEOF_LONG_DOUBLE__ 16 (94), line 0 (strx)
+ #define __SIZEOF_LONG_LONG__ 8 (95), line 0 (strx)
+ #define __SIZEOF_POINTER__ 8 (96), line 0 (strx)
+ #define __SIZEOF_SHORT__ 2 (97), line 0 (strx)
+ #define __SIZEOF_PTRDIFF_T__ 8 (98), line 0 (strx)
+ #define __SIZEOF_SIZE_T__ 8 (99), line 0 (strx)
+ #define __SIZEOF_WCHAR_T__ 4 (100), line 0 (strx)
+ #define __SIZEOF_WINT_T__ 4 (101), line 0 (strx)
+ #define __SIZEOF_INT128__ 16 (102), line 0 (strx)
+ #define __INTMAX_TYPE__ long int (103), line 0 (strx)
+ #define __INTMAX_FMTd__ "ld" (104), line 0 (strx)
+ #define __INTMAX_FMTi__ "li" (105), line 0 (strx)
+ #define __INTMAX_C_SUFFIX__ L (106), line 0 (strx)
+ #define __UINTMAX_TYPE__ long unsigned int (107), line 0 (strx)
+ #define __UINTMAX_FMTo__ "lo" (108), line 0 (strx)
+ #define __UINTMAX_FMTu__ "lu" (109), line 0 (strx)
+ #define __UINTMAX_FMTx__ "lx" (110), line 0 (strx)
+ #define __UINTMAX_FMTX__ "lX" (111), line 0 (strx)
+ #define __UINTMAX_C_SUFFIX__ UL (112), line 0 (strx)
+ #define __PTRDIFF_TYPE__ long int (113), line 0 (strx)
+ #define __PTRDIFF_FMTd__ "ld" (114), line 0 (strx)
+ #define __PTRDIFF_FMTi__ "li" (115), line 0 (strx)
+ #define __INTPTR_TYPE__ long int (116), line 0 (strx)
+ #define __INTPTR_FMTd__ "ld" (117), line 0 (strx)
+ #define __INTPTR_FMTi__ "li" (118), line 0 (strx)
+ #define __SIZE_TYPE__ long unsigned int (119), line 0 (strx)
+ #define __SIZE_FMTo__ "lo" (120), line 0 (strx)
+ #define __SIZE_FMTu__ "lu" (121), line 0 (strx)
+ #define __SIZE_FMTx__ "lx" (122), line 0 (strx)
+ #define __SIZE_FMTX__ "lX" (123), line 0 (strx)
+ #define __WCHAR_TYPE__ int (124), line 0 (strx)
+ #define __WINT_TYPE__ unsigned int (125), line 0 (strx)
+ #define __SIG_ATOMIC_MAX__ 2147483647 (126), line 0 (strx)
+ #define __SIG_ATOMIC_WIDTH__ 32 (127), line 0 (strx)
+ #define __CHAR16_TYPE__ unsigned short (128), line 0 (strx)
+ #define __CHAR32_TYPE__ unsigned int (129), line 0 (strx)
+ #define __UINTPTR_TYPE__ long unsigned int (130), line 0 (strx)
+ #define __UINTPTR_FMTo__ "lo" (131), line 0 (strx)
+ #define __UINTPTR_FMTu__ "lu" (132), line 0 (strx)
+ #define __UINTPTR_FMTx__ "lx" (133), line 0 (strx)
+ #define __UINTPTR_FMTX__ "lX" (134), line 0 (strx)
+ #define __FLT16_DENORM_MIN__ 5.9604644775390625e-8F16 (135), line 0 (strx)
+ #define __FLT16_HAS_DENORM__ 1 (136), line 0 (strx)
+ #define __FLT16_DIG__ 3 (137), line 0 (strx)
+ #define __FLT16_DECIMAL_DIG__ 5 (138), line 0 (strx)
+ #define __FLT16_EPSILON__ 9.765625e-4F16 (139), line 0 (strx)
+ #define __FLT16_HAS_INFINITY__ 1 (140), line 0 (strx)
+ #define __FLT16_HAS_QUIET_NAN__ 1 (141), line 0 (strx)
+ #define __FLT16_MANT_DIG__ 11 (142), line 0 (strx)
+ #define __FLT16_MAX_10_EXP__ 4 (143), line 0 (strx)
+ #define __FLT16_MAX_EXP__ 16 (144), line 0 (strx)
+ #define __FLT16_MAX__ 6.5504e+4F16 (145), line 0 (strx)
+ #define __FLT16_MIN_10_EXP__ (-4) (146), line 0 (strx)
+ #define __FLT16_MIN_EXP__ (-13) (147), line 0 (strx)
+ #define __FLT16_MIN__ 6.103515625e-5F16 (148), line 0 (strx)
+ #define __FLT_DENORM_MIN__ 1.40129846e-45F (149), line 0 (strx)
+ #define __FLT_HAS_DENORM__ 1 (150), line 0 (strx)
+ #define __FLT_DIG__ 6 (151), line 0 (strx)
+ #define __FLT_DECIMAL_DIG__ 9 (152), line 0 (strx)
+ #define __FLT_EPSILON__ 1.19209290e-7F (153), line 0 (strx)
+ #define __FLT_HAS_INFINITY__ 1 (154), line 0 (strx)
+ #define __FLT_HAS_QUIET_NAN__ 1 (155), line 0 (strx)
+ #define __FLT_MANT_DIG__ 24 (156), line 0 (strx)
+ #define __FLT_MAX_10_EXP__ 38 (157), line 0 (strx)
+ #define __FLT_MAX_EXP__ 128 (158), line 0 (strx)
+ #define __FLT_MAX__ 3.40282347e+38F (159), line 0 (strx)
+ #define __FLT_MIN_10_EXP__ (-37) (160), line 0 (strx)
+ #define __FLT_MIN_EXP__ (-125) (161), line 0 (strx)
+ #define __FLT_MIN__ 1.17549435e-38F (162), line 0 (strx)
+ #define __DBL_DENORM_MIN__ 4.9406564584124654e-324 (163), line 0 (strx)
+ #define __DBL_HAS_DENORM__ 1 (164), line 0 (strx)
+ #define __DBL_DIG__ 15 (165), line 0 (strx)
+ #define __DBL_DECIMAL_DIG__ 17 (166), line 0 (strx)
+ #define __DBL_EPSILON__ 2.2204460492503131e-16 (167), line 0 (strx)
+ #define __DBL_HAS_INFINITY__ 1 (168), line 0 (strx)
+ #define __DBL_HAS_QUIET_NAN__ 1 (169), line 0 (strx)
+ #define __DBL_MANT_DIG__ 53 (170), line 0 (strx)
+ #define __DBL_MAX_10_EXP__ 308 (171), line 0 (strx)
+ #define __DBL_MAX_EXP__ 1024 (172), line 0 (strx)
+ #define __DBL_MAX__ 1.7976931348623157e+308 (173), line 0 (strx)
+ #define __DBL_MIN_10_EXP__ (-307) (174), line 0 (strx)
+ #define __DBL_MIN_EXP__ (-1021) (175), line 0 (strx)
+ #define __DBL_MIN__ 2.2250738585072014e-308 (176), line 0 (strx)
+ #define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L (177), line 0 (strx)
+ #define __LDBL_HAS_DENORM__ 1 (178), line 0 (strx)
+ #define __LDBL_DIG__ 18 (179), line 0 (strx)
+ #define __LDBL_DECIMAL_DIG__ 21 (180), line 0 (strx)
+ #define __LDBL_EPSILON__ 1.08420217248550443401e-19L (181), line 0 (strx)
+ #define __LDBL_HAS_INFINITY__ 1 (182), line 0 (strx)
+ #define __LDBL_HAS_QUIET_NAN__ 1 (183), line 0 (strx)
+ #define __LDBL_MANT_DIG__ 64 (184), line 0 (strx)
+ #define __LDBL_MAX_10_EXP__ 4932 (185), line 0 (strx)
+ #define __LDBL_MAX_EXP__ 16384 (186), line 0 (strx)
+ #define __LDBL_MAX__ 1.18973149535723176502e+4932L (187), line 0 (strx)
+ #define __LDBL_MIN_10_EXP__ (-4931) (188), line 0 (strx)
+ #define __LDBL_MIN_EXP__ (-16381) (189), line 0 (strx)
+ #define __LDBL_MIN__ 3.36210314311209350626e-4932L (190), line 0 (strx)
+ #define __POINTER_WIDTH__ 64 (191), line 0 (strx)
+ #define __BIGGEST_ALIGNMENT__ 16 (192), line 0 (strx)
+ #define __WINT_UNSIGNED__ 1 (193), line 0 (strx)
+ #define __INT8_TYPE__ signed char (194), line 0 (strx)
+ #define __INT8_FMTd__ "hhd" (195), line 0 (strx)
+ #define __INT8_FMTi__ "hhi" (196), line 0 (strx)
+ #define __INT8_C_SUFFIX__ (197), line 0 (strx)
+ #define __INT16_TYPE__ short (198), line 0 (strx)
+ #define __INT16_FMTd__ "hd" (199), line 0 (strx)
+ #define __INT16_FMTi__ "hi" (200), line 0 (strx)
+ #define __INT16_C_SUFFIX__ (201), line 0 (strx)
+ #define __INT32_TYPE__ int (202), line 0 (strx)
+ #define __INT32_FMTd__ "d" (203), line 0 (strx)
+ #define __INT32_FMTi__ "i" (204), line 0 (strx)
+ #define __INT32_C_SUFFIX__ (205), line 0 (strx)
+ #define __INT64_TYPE__ long int (206), line 0 (strx)
+ #define __INT64_FMTd__ "ld" (207), line 0 (strx)
+ #define __INT64_FMTi__ "li" (208), line 0 (strx)
+ #define __INT64_C_SUFFIX__ L (209), line 0 (strx)
+ #define __UINT8_TYPE__ unsigned char (210), line 0 (strx)
+ #define __UINT8_FMTo__ "hho" (211), line 0 (strx)
+ #define __UINT8_FMTu__ "hhu" (212), line 0 (strx)
+ #define __UINT8_FMTx__ "hhx" (213), line 0 (strx)
+ #define __UINT8_FMTX__ "hhX" (214), line 0 (strx)
+ #define __UINT8_C_SUFFIX__ (215), line 0 (strx)
+ #define __UINT8_MAX__ 255 (216), line 0 (strx)
+ #define __INT8_MAX__ 127 (217), line 0 (strx)
+ #define __UINT16_TYPE__ unsigned short (218), line 0 (strx)
+ #define __UINT16_FMTo__ "ho" (219), line 0 (strx)
+ #define __UINT16_FMTu__ "hu" (220), line 0 (strx)
+ #define __UINT16_FMTx__ "hx" (221), line 0 (strx)
+ #define __UINT16_FMTX__ "hX" (222), line 0 (strx)
+ #define __UINT16_C_SUFFIX__ (223), line 0 (strx)
+ #define __UINT16_MAX__ 65535 (224), line 0 (strx)
+ #define __INT16_MAX__ 32767 (225), line 0 (strx)
+ #define __UINT32_TYPE__ unsigned int (226), line 0 (strx)
+ #define __UINT32_FMTo__ "o" (227), line 0 (strx)
+ #define __UINT32_FMTu__ "u" (228), line 0 (strx)
+ #define __UINT32_FMTx__ "x" (229), line 0 (strx)
+ #define __UINT32_FMTX__ "X" (230), line 0 (strx)
+ #define __UINT32_C_SUFFIX__ U (231), line 0 (strx)
+ #define __UINT32_MAX__ 4294967295U (232), line 0 (strx)
+ #define __INT32_MAX__ 2147483647 (233), line 0 (strx)
+ #define __UINT64_TYPE__ long unsigned int (234), line 0 (strx)
+ #define __UINT64_FMTo__ "lo" (235), line 0 (strx)
+ #define __UINT64_FMTu__ "lu" (236), line 0 (strx)
+ #define __UINT64_FMTx__ "lx" (237), line 0 (strx)
+ #define __UINT64_FMTX__ "lX" (238), line 0 (strx)
+ #define __UINT64_C_SUFFIX__ UL (239), line 0 (strx)
+ #define __UINT64_MAX__ 18446744073709551615UL (240), line 0 (strx)
+ #define __INT64_MAX__ 9223372036854775807L (241), line 0 (strx)
+ #define __INT_LEAST8_TYPE__ signed char (242), line 0 (strx)
+ #define __INT_LEAST8_MAX__ 127 (243), line 0 (strx)
+ #define __INT_LEAST8_WIDTH__ 8 (244), line 0 (strx)
+ #define __INT_LEAST8_FMTd__ "hhd" (245), line 0 (strx)
+ #define __INT_LEAST8_FMTi__ "hhi" (246), line 0 (strx)
+ #define __UINT_LEAST8_TYPE__ unsigned char (247), line 0 (strx)
+ #define __UINT_LEAST8_MAX__ 255 (248), line 0 (strx)
+ #define __UINT_LEAST8_FMTo__ "hho" (249), line 0 (strx)
+ #define __UINT_LEAST8_FMTu__ "hhu" (250), line 0 (strx)
+ #define __UINT_LEAST8_FMTx__ "hhx" (251), line 0 (strx)
+ #define __UINT_LEAST8_FMTX__ "hhX" (252), line 0 (strx)
+ #define __INT_LEAST16_TYPE__ short (253), line 0 (strx)
+ #define __INT_LEAST16_MAX__ 32767 (254), line 0 (strx)
+ #define __INT_LEAST16_WIDTH__ 16 (255), line 0 (strx)
+ #define __INT_LEAST16_FMTd__ "hd" (256), line 0 (strx)
+ #define __INT_LEAST16_FMTi__ "hi" (257), line 0 (strx)
+ #define __UINT_LEAST16_TYPE__ unsigned short (258), line 0 (strx)
+ #define __UINT_LEAST16_MAX__ 65535 (259), line 0 (strx)
+ #define __UINT_LEAST16_FMTo__ "ho" (260), line 0 (strx)
+ #define __UINT_LEAST16_FMTu__ "hu" (261), line 0 (strx)
+ #define __UINT_LEAST16_FMTx__ "hx" (262), line 0 (strx)
+ #define __UINT_LEAST16_FMTX__ "hX" (263), line 0 (strx)
+ #define __INT_LEAST32_TYPE__ int (264), line 0 (strx)
+ #define __INT_LEAST32_MAX__ 2147483647 (265), line 0 (strx)
+ #define __INT_LEAST32_WIDTH__ 32 (266), line 0 (strx)
+ #define __INT_LEAST32_FMTd__ "d" (267), line 0 (strx)
+ #define __INT_LEAST32_FMTi__ "i" (268), line 0 (strx)
+ #define __UINT_LEAST32_TYPE__ unsigned int (269), line 0 (strx)
+ #define __UINT_LEAST32_MAX__ 4294967295U (270), line 0 (strx)
+ #define __UINT_LEAST32_FMTo__ "o" (271), line 0 (strx)
+ #define __UINT_LEAST32_FMTu__ "u" (272), line 0 (strx)
+ #define __UINT_LEAST32_FMTx__ "x" (273), line 0 (strx)
+ #define __UINT_LEAST32_FMTX__ "X" (274), line 0 (strx)
+ #define __INT_LEAST64_TYPE__ long int (275), line 0 (strx)
+ #define __INT_LEAST64_MAX__ 9223372036854775807L (276), line 0 (strx)
+ #define __INT_LEAST64_WIDTH__ 64 (277), line 0 (strx)
+ #define __INT_LEAST64_FMTd__ "ld" (278), line 0 (strx)
+ #define __INT_LEAST64_FMTi__ "li" (279), line 0 (strx)
+ #define __UINT_LEAST64_TYPE__ long unsigned int (280), line 0 (strx)
+ #define __UINT_LEAST64_MAX__ 18446744073709551615UL (281), line 0 (strx)
+ #define __UINT_LEAST64_FMTo__ "lo" (282), line 0 (strx)
+ #define __UINT_LEAST64_FMTu__ "lu" (283), line 0 (strx)
+ #define __UINT_LEAST64_FMTx__ "lx" (284), line 0 (strx)
+ #define __UINT_LEAST64_FMTX__ "lX" (285), line 0 (strx)
+ #define __INT_FAST8_TYPE__ signed char (286), line 0 (strx)
+ #define __INT_FAST8_MAX__ 127 (287), line 0 (strx)
+ #define __INT_FAST8_WIDTH__ 8 (288), line 0 (strx)
+ #define __INT_FAST8_FMTd__ "hhd" (289), line 0 (strx)
+ #define __INT_FAST8_FMTi__ "hhi" (290), line 0 (strx)
+ #define __UINT_FAST8_TYPE__ unsigned char (291), line 0 (strx)
+ #define __UINT_FAST8_MAX__ 255 (292), line 0 (strx)
+ #define __UINT_FAST8_FMTo__ "hho" (293), line 0 (strx)
+ #define __UINT_FAST8_FMTu__ "hhu" (294), line 0 (strx)
+ #define __UINT_FAST8_FMTx__ "hhx" (295), line 0 (strx)
+ #define __UINT_FAST8_FMTX__ "hhX" (296), line 0 (strx)
+ #define __INT_FAST16_TYPE__ short (297), line 0 (strx)
+ #define __INT_FAST16_MAX__ 32767 (298), line 0 (strx)
+ #define __INT_FAST16_WIDTH__ 16 (299), line 0 (strx)
+ #define __INT_FAST16_FMTd__ "hd" (300), line 0 (strx)
+ #define __INT_FAST16_FMTi__ "hi" (301), line 0 (strx)
+ #define __UINT_FAST16_TYPE__ unsigned short (302), line 0 (strx)
+ #define __UINT_FAST16_MAX__ 65535 (303), line 0 (strx)
+ #define __UINT_FAST16_FMTo__ "ho" (304), line 0 (strx)
+ #define __UINT_FAST16_FMTu__ "hu" (305), line 0 (strx)
+ #define __UINT_FAST16_FMTx__ "hx" (306), line 0 (strx)
+ #define __UINT_FAST16_FMTX__ "hX" (307), line 0 (strx)
+ #define __INT_FAST32_TYPE__ int (308), line 0 (strx)
+ #define __INT_FAST32_MAX__ 2147483647 (309), line 0 (strx)
+ #define __INT_FAST32_WIDTH__ 32 (310), line 0 (strx)
+ #define __INT_FAST32_FMTd__ "d" (311), line 0 (strx)
+ #define __INT_FAST32_FMTi__ "i" (312), line 0 (strx)
+ #define __UINT_FAST32_TYPE__ unsigned int (313), line 0 (strx)
+ #define __UINT_FAST32_MAX__ 4294967295U (314), line 0 (strx)
+ #define __UINT_FAST32_FMTo__ "o" (315), line 0 (strx)
+ #define __UINT_FAST32_FMTu__ "u" (316), line 0 (strx)
+ #define __UINT_FAST32_FMTx__ "x" (317), line 0 (strx)
+ #define __UINT_FAST32_FMTX__ "X" (318), line 0 (strx)
+ #define __INT_FAST64_TYPE__ long int (319), line 0 (strx)
+ #define __INT_FAST64_MAX__ 9223372036854775807L (320), line 0 (strx)
+ #define __INT_FAST64_WIDTH__ 64 (321), line 0 (strx)
+ #define __INT_FAST64_FMTd__ "ld" (322), line 0 (strx)
+ #define __INT_FAST64_FMTi__ "li" (323), line 0 (strx)
+ #define __UINT_FAST64_TYPE__ long unsigned int (324), line 0 (strx)
+ #define __UINT_FAST64_MAX__ 18446744073709551615UL (325), line 0 (strx)
+ #define __UINT_FAST64_FMTo__ "lo" (326), line 0 (strx)
+ #define __UINT_FAST64_FMTu__ "lu" (327), line 0 (strx)
+ #define __UINT_FAST64_FMTx__ "lx" (328), line 0 (strx)
+ #define __UINT_FAST64_FMTX__ "lX" (329), line 0 (strx)
+ #define __USER_LABEL_PREFIX__ (330), line 0 (strx)
+ #define __FINITE_MATH_ONLY__ 0 (331), line 0 (strx)
+ #define __GNUC_STDC_INLINE__ 1 (332), line 0 (strx)
+ #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 (333), line 0 (strx)
+ #define __CLANG_ATOMIC_BOOL_LOCK_FREE 2 (334), line 0 (strx)
+ #define __CLANG_ATOMIC_CHAR_LOCK_FREE 2 (335), line 0 (strx)
+ #define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2 (336), line 0 (strx)
+ #define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2 (337), line 0 (strx)
+ #define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2 (338), line 0 (strx)
+ #define __CLANG_ATOMIC_SHORT_LOCK_FREE 2 (339), line 0 (strx)
+ #define __CLANG_ATOMIC_INT_LOCK_FREE 2 (340), line 0 (strx)
+ #define __CLANG_ATOMIC_LONG_LOCK_FREE 2 (341), line 0 (strx)
+ #define __CLANG_ATOMIC_LLONG_LOCK_FREE 2 (342), line 0 (strx)
+ #define __CLANG_ATOMIC_POINTER_LOCK_FREE 2 (343), line 0 (strx)
+ #define __GCC_ATOMIC_BOOL_LOCK_FREE 2 (344), line 0 (strx)
+ #define __GCC_ATOMIC_CHAR_LOCK_FREE 2 (345), line 0 (strx)
+ #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 (346), line 0 (strx)
+ #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 (347), line 0 (strx)
+ #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 (348), line 0 (strx)
+ #define __GCC_ATOMIC_SHORT_LOCK_FREE 2 (349), line 0 (strx)
+ #define __GCC_ATOMIC_INT_LOCK_FREE 2 (350), line 0 (strx)
+ #define __GCC_ATOMIC_LONG_LOCK_FREE 2 (351), line 0 (strx)
+ #define __GCC_ATOMIC_LLONG_LOCK_FREE 2 (352), line 0 (strx)
+ #define __GCC_ATOMIC_POINTER_LOCK_FREE 2 (353), line 0 (strx)
+ #define __NO_INLINE__ 1 (354), line 0 (strx)
+ #define __FLT_RADIX__ 2 (355), line 0 (strx)
+ #define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ (356), line 0 (strx)
+ #define __ELF__ 1 (357), line 0 (strx)
+ #define __GCC_ASM_FLAG_OUTPUTS__ 1 (358), line 0 (strx)
+ #define __code_model_small__ 1 (359), line 0 (strx)
+ #define __amd64__ 1 (360), line 0 (strx)
+ #define __amd64 1 (361), line 0 (strx)
+ #define __x86_64 1 (362), line 0 (strx)
+ #define __x86_64__ 1 (363), line 0 (strx)
+ #define __SEG_GS 1 (364), line 0 (strx)
+ #define __SEG_FS 1 (365), line 0 (strx)
+ #define __seg_gs __attribute__((address_space(256))) (366), line 0 (strx)
+ #define __seg_fs __attribute__((address_space(257))) (367), line 0 (strx)
+ #define __k8 1 (368), line 0 (strx)
+ #define __k8__ 1 (369), line 0 (strx)
+ #define __tune_k8__ 1 (370), line 0 (strx)
+ #define __REGISTER_PREFIX__ (371), line 0 (strx)
+ #define __NO_MATH_INLINES 1 (372), line 0 (strx)
+ #define __FXSR__ 1 (373), line 0 (strx)
+ #define __SSE2__ 1 (374), line 0 (strx)
+ #define __SSE2_MATH__ 1 (375), line 0 (strx)
+ #define __SSE__ 1 (376), line 0 (strx)
+ #define __SSE_MATH__ 1 (377), line 0 (strx)
+ #define __MMX__ 1 (378), line 0 (strx)
+ #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 (379), line 0 (strx)
+ #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 (380), line 0 (strx)
+ #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 (381), line 0 (strx)
+ #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 (382), line 0 (strx)
+ #define __SIZEOF_FLOAT128__ 16 (383), line 0 (strx)
+ #define unix 1 (384), line 0 (strx)
+ #define __unix 1 (385), line 0 (strx)
+ #define __unix__ 1 (386), line 0 (strx)
+ #define linux 1 (387), line 0 (strx)
+ #define __linux 1 (388), line 0 (strx)
+ #define __linux__ 1 (389), line 0 (strx)
+ #define __gnu_linux__ 1 (390), line 0 (strx)
+ #define __FLOAT128__ 1 (391), line 0 (strx)
+ #define __STDC__ 1 (392), line 0 (strx)
+ #define __STDC_HOSTED__ 1 (393), line 0 (strx)
+ #define __STDC_VERSION__ 201710L (394), line 0 (strx)
+ #define __STDC_UTF_16__ 1 (395), line 0 (strx)
+ #define __STDC_UTF_32__ 1 (396), line 0 (strx)
+ #define __GCC_HAVE_DWARF2_CFI_ASM 1 (397), line 0 (strx)
+
+ Offset:             0x5ad
+ Version:            5
+ Flag:               0x2 (debug_line_offset)
+ Offset length:      4
+ .debug_line offset: 0x79
+
+ start_file 0, [0] /home/mark/src/tests/world.c
+  start_file 1, [1] ./common.h
+   #define ONE 1 (7), line 1 (strx)
+   #define TWO 2 (8), line 2 (strx)
+   #define THREE 3 (9), line 3 (strx)
+   #define WORLD "World" (10), line 5 (strx)
+   #define A 'a' (11), line 9 (strx)
+   #define B b (12), line 10 (strx)
+   #define C "C" (13), line 11 (strx)
+   #undef THREE (14), line 14 (strx)
+   #define THREE(ARG1,ARG2,ARG3) ARG3 (15), line 15 (strx)
+  end_file
+ end_file
+ #define __llvm__ 1 (16), line 0 (strx)
+ #define __clang__ 1 (17), line 0 (strx)
+ #define __clang_major__ 17 (18), line 0 (strx)
+ #define __clang_minor__ 0 (19), line 0 (strx)
+ #define __clang_patchlevel__ 6 (20), line 0 (strx)
+ #define __clang_version__ "17.0.6 (Fedora 17.0.6-2.fc39)" (21), line 0 (strx)
+ #define __GNUC__ 4 (22), line 0 (strx)
+ #define __GNUC_MINOR__ 2 (23), line 0 (strx)
+ #define __GNUC_PATCHLEVEL__ 1 (24), line 0 (strx)
+ #define __GXX_ABI_VERSION 1002 (25), line 0 (strx)
+ #define __ATOMIC_RELAXED 0 (26), line 0 (strx)
+ #define __ATOMIC_CONSUME 1 (27), line 0 (strx)
+ #define __ATOMIC_ACQUIRE 2 (28), line 0 (strx)
+ #define __ATOMIC_RELEASE 3 (29), line 0 (strx)
+ #define __ATOMIC_ACQ_REL 4 (30), line 0 (strx)
+ #define __ATOMIC_SEQ_CST 5 (31), line 0 (strx)
+ #define __OPENCL_MEMORY_SCOPE_WORK_ITEM 0 (32), line 0 (strx)
+ #define __OPENCL_MEMORY_SCOPE_WORK_GROUP 1 (33), line 0 (strx)
+ #define __OPENCL_MEMORY_SCOPE_DEVICE 2 (34), line 0 (strx)
+ #define __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES 3 (35), line 0 (strx)
+ #define __OPENCL_MEMORY_SCOPE_SUB_GROUP 4 (36), line 0 (strx)
+ #define __FPCLASS_SNAN 0x0001 (37), line 0 (strx)
+ #define __FPCLASS_QNAN 0x0002 (38), line 0 (strx)
+ #define __FPCLASS_NEGINF 0x0004 (39), line 0 (strx)
+ #define __FPCLASS_NEGNORMAL 0x0008 (40), line 0 (strx)
+ #define __FPCLASS_NEGSUBNORMAL 0x0010 (41), line 0 (strx)
+ #define __FPCLASS_NEGZERO 0x0020 (42), line 0 (strx)
+ #define __FPCLASS_POSZERO 0x0040 (43), line 0 (strx)
+ #define __FPCLASS_POSSUBNORMAL 0x0080 (44), line 0 (strx)
+ #define __FPCLASS_POSNORMAL 0x0100 (45), line 0 (strx)
+ #define __FPCLASS_POSINF 0x0200 (46), line 0 (strx)
+ #define __PRAGMA_REDEFINE_EXTNAME 1 (47), line 0 (strx)
+ #define __VERSION__ "Clang 17.0.6 (Fedora 17.0.6-2.fc39)" (48), line 0 (strx)
+ #define __OBJC_BOOL_IS_BOOL 0 (49), line 0 (strx)
+ #define __CONSTANT_CFSTRINGS__ 1 (50), line 0 (strx)
+ #define __clang_literal_encoding__ "UTF-8" (51), line 0 (strx)
+ #define __clang_wide_literal_encoding__ "UTF-32" (52), line 0 (strx)
+ #define __ORDER_LITTLE_ENDIAN__ 1234 (53), line 0 (strx)
+ #define __ORDER_BIG_ENDIAN__ 4321 (54), line 0 (strx)
+ #define __ORDER_PDP_ENDIAN__ 3412 (55), line 0 (strx)
+ #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ (56), line 0 (strx)
+ #define __LITTLE_ENDIAN__ 1 (57), line 0 (strx)
+ #define _LP64 1 (58), line 0 (strx)
+ #define __LP64__ 1 (59), line 0 (strx)
+ #define __CHAR_BIT__ 8 (60), line 0 (strx)
+ #define __BOOL_WIDTH__ 8 (61), line 0 (strx)
+ #define __SHRT_WIDTH__ 16 (62), line 0 (strx)
+ #define __INT_WIDTH__ 32 (63), line 0 (strx)
+ #define __LONG_WIDTH__ 64 (64), line 0 (strx)
+ #define __LLONG_WIDTH__ 64 (65), line 0 (strx)
+ #define __BITINT_MAXWIDTH__ 8388608 (66), line 0 (strx)
+ #define __SCHAR_MAX__ 127 (67), line 0 (strx)
+ #define __SHRT_MAX__ 32767 (68), line 0 (strx)
+ #define __INT_MAX__ 2147483647 (69), line 0 (strx)
+ #define __LONG_MAX__ 9223372036854775807L (70), line 0 (strx)
+ #define __LONG_LONG_MAX__ 9223372036854775807LL (71), line 0 (strx)
+ #define __WCHAR_MAX__ 2147483647 (72), line 0 (strx)
+ #define __WCHAR_WIDTH__ 32 (73), line 0 (strx)
+ #define __WINT_MAX__ 4294967295U (74), line 0 (strx)
+ #define __WINT_WIDTH__ 32 (75), line 0 (strx)
+ #define __INTMAX_MAX__ 9223372036854775807L (76), line 0 (strx)
+ #define __INTMAX_WIDTH__ 64 (77), line 0 (strx)
+ #define __SIZE_MAX__ 18446744073709551615UL (78), line 0 (strx)
+ #define __SIZE_WIDTH__ 64 (79), line 0 (strx)
+ #define __UINTMAX_MAX__ 18446744073709551615UL (80), line 0 (strx)
+ #define __UINTMAX_WIDTH__ 64 (81), line 0 (strx)
+ #define __PTRDIFF_MAX__ 9223372036854775807L (82), line 0 (strx)
+ #define __PTRDIFF_WIDTH__ 64 (83), line 0 (strx)
+ #define __INTPTR_MAX__ 9223372036854775807L (84), line 0 (strx)
+ #define __INTPTR_WIDTH__ 64 (85), line 0 (strx)
+ #define __UINTPTR_MAX__ 18446744073709551615UL (86), line 0 (strx)
+ #define __UINTPTR_WIDTH__ 64 (87), line 0 (strx)
+ #define __SIZEOF_DOUBLE__ 8 (88), line 0 (strx)
+ #define __SIZEOF_FLOAT__ 4 (89), line 0 (strx)
+ #define __SIZEOF_INT__ 4 (90), line 0 (strx)
+ #define __SIZEOF_LONG__ 8 (91), line 0 (strx)
+ #define __SIZEOF_LONG_DOUBLE__ 16 (92), line 0 (strx)
+ #define __SIZEOF_LONG_LONG__ 8 (93), line 0 (strx)
+ #define __SIZEOF_POINTER__ 8 (94), line 0 (strx)
+ #define __SIZEOF_SHORT__ 2 (95), line 0 (strx)
+ #define __SIZEOF_PTRDIFF_T__ 8 (96), line 0 (strx)
+ #define __SIZEOF_SIZE_T__ 8 (97), line 0 (strx)
+ #define __SIZEOF_WCHAR_T__ 4 (98), line 0 (strx)
+ #define __SIZEOF_WINT_T__ 4 (99), line 0 (strx)
+ #define __SIZEOF_INT128__ 16 (100), line 0 (strx)
+ #define __INTMAX_TYPE__ long int (101), line 0 (strx)
+ #define __INTMAX_FMTd__ "ld" (102), line 0 (strx)
+ #define __INTMAX_FMTi__ "li" (103), line 0 (strx)
+ #define __INTMAX_C_SUFFIX__ L (104), line 0 (strx)
+ #define __UINTMAX_TYPE__ long unsigned int (105), line 0 (strx)
+ #define __UINTMAX_FMTo__ "lo" (106), line 0 (strx)
+ #define __UINTMAX_FMTu__ "lu" (107), line 0 (strx)
+ #define __UINTMAX_FMTx__ "lx" (108), line 0 (strx)
+ #define __UINTMAX_FMTX__ "lX" (109), line 0 (strx)
+ #define __UINTMAX_C_SUFFIX__ UL (110), line 0 (strx)
+ #define __PTRDIFF_TYPE__ long int (111), line 0 (strx)
+ #define __PTRDIFF_FMTd__ "ld" (112), line 0 (strx)
+ #define __PTRDIFF_FMTi__ "li" (113), line 0 (strx)
+ #define __INTPTR_TYPE__ long int (114), line 0 (strx)
+ #define __INTPTR_FMTd__ "ld" (115), line 0 (strx)
+ #define __INTPTR_FMTi__ "li" (116), line 0 (strx)
+ #define __SIZE_TYPE__ long unsigned int (117), line 0 (strx)
+ #define __SIZE_FMTo__ "lo" (118), line 0 (strx)
+ #define __SIZE_FMTu__ "lu" (119), line 0 (strx)
+ #define __SIZE_FMTx__ "lx" (120), line 0 (strx)
+ #define __SIZE_FMTX__ "lX" (121), line 0 (strx)
+ #define __WCHAR_TYPE__ int (122), line 0 (strx)
+ #define __WINT_TYPE__ unsigned int (123), line 0 (strx)
+ #define __SIG_ATOMIC_MAX__ 2147483647 (124), line 0 (strx)
+ #define __SIG_ATOMIC_WIDTH__ 32 (125), line 0 (strx)
+ #define __CHAR16_TYPE__ unsigned short (126), line 0 (strx)
+ #define __CHAR32_TYPE__ unsigned int (127), line 0 (strx)
+ #define __UINTPTR_TYPE__ long unsigned int (128), line 0 (strx)
+ #define __UINTPTR_FMTo__ "lo" (129), line 0 (strx)
+ #define __UINTPTR_FMTu__ "lu" (130), line 0 (strx)
+ #define __UINTPTR_FMTx__ "lx" (131), line 0 (strx)
+ #define __UINTPTR_FMTX__ "lX" (132), line 0 (strx)
+ #define __FLT16_DENORM_MIN__ 5.9604644775390625e-8F16 (133), line 0 (strx)
+ #define __FLT16_HAS_DENORM__ 1 (134), line 0 (strx)
+ #define __FLT16_DIG__ 3 (135), line 0 (strx)
+ #define __FLT16_DECIMAL_DIG__ 5 (136), line 0 (strx)
+ #define __FLT16_EPSILON__ 9.765625e-4F16 (137), line 0 (strx)
+ #define __FLT16_HAS_INFINITY__ 1 (138), line 0 (strx)
+ #define __FLT16_HAS_QUIET_NAN__ 1 (139), line 0 (strx)
+ #define __FLT16_MANT_DIG__ 11 (140), line 0 (strx)
+ #define __FLT16_MAX_10_EXP__ 4 (141), line 0 (strx)
+ #define __FLT16_MAX_EXP__ 16 (142), line 0 (strx)
+ #define __FLT16_MAX__ 6.5504e+4F16 (143), line 0 (strx)
+ #define __FLT16_MIN_10_EXP__ (-4) (144), line 0 (strx)
+ #define __FLT16_MIN_EXP__ (-13) (145), line 0 (strx)
+ #define __FLT16_MIN__ 6.103515625e-5F16 (146), line 0 (strx)
+ #define __FLT_DENORM_MIN__ 1.40129846e-45F (147), line 0 (strx)
+ #define __FLT_HAS_DENORM__ 1 (148), line 0 (strx)
+ #define __FLT_DIG__ 6 (149), line 0 (strx)
+ #define __FLT_DECIMAL_DIG__ 9 (150), line 0 (strx)
+ #define __FLT_EPSILON__ 1.19209290e-7F (151), line 0 (strx)
+ #define __FLT_HAS_INFINITY__ 1 (152), line 0 (strx)
+ #define __FLT_HAS_QUIET_NAN__ 1 (153), line 0 (strx)
+ #define __FLT_MANT_DIG__ 24 (154), line 0 (strx)
+ #define __FLT_MAX_10_EXP__ 38 (155), line 0 (strx)
+ #define __FLT_MAX_EXP__ 128 (156), line 0 (strx)
+ #define __FLT_MAX__ 3.40282347e+38F (157), line 0 (strx)
+ #define __FLT_MIN_10_EXP__ (-37) (158), line 0 (strx)
+ #define __FLT_MIN_EXP__ (-125) (159), line 0 (strx)
+ #define __FLT_MIN__ 1.17549435e-38F (160), line 0 (strx)
+ #define __DBL_DENORM_MIN__ 4.9406564584124654e-324 (161), line 0 (strx)
+ #define __DBL_HAS_DENORM__ 1 (162), line 0 (strx)
+ #define __DBL_DIG__ 15 (163), line 0 (strx)
+ #define __DBL_DECIMAL_DIG__ 17 (164), line 0 (strx)
+ #define __DBL_EPSILON__ 2.2204460492503131e-16 (165), line 0 (strx)
+ #define __DBL_HAS_INFINITY__ 1 (166), line 0 (strx)
+ #define __DBL_HAS_QUIET_NAN__ 1 (167), line 0 (strx)
+ #define __DBL_MANT_DIG__ 53 (168), line 0 (strx)
+ #define __DBL_MAX_10_EXP__ 308 (169), line 0 (strx)
+ #define __DBL_MAX_EXP__ 1024 (170), line 0 (strx)
+ #define __DBL_MAX__ 1.7976931348623157e+308 (171), line 0 (strx)
+ #define __DBL_MIN_10_EXP__ (-307) (172), line 0 (strx)
+ #define __DBL_MIN_EXP__ (-1021) (173), line 0 (strx)
+ #define __DBL_MIN__ 2.2250738585072014e-308 (174), line 0 (strx)
+ #define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L (175), line 0 (strx)
+ #define __LDBL_HAS_DENORM__ 1 (176), line 0 (strx)
+ #define __LDBL_DIG__ 18 (177), line 0 (strx)
+ #define __LDBL_DECIMAL_DIG__ 21 (178), line 0 (strx)
+ #define __LDBL_EPSILON__ 1.08420217248550443401e-19L (179), line 0 (strx)
+ #define __LDBL_HAS_INFINITY__ 1 (180), line 0 (strx)
+ #define __LDBL_HAS_QUIET_NAN__ 1 (181), line 0 (strx)
+ #define __LDBL_MANT_DIG__ 64 (182), line 0 (strx)
+ #define __LDBL_MAX_10_EXP__ 4932 (183), line 0 (strx)
+ #define __LDBL_MAX_EXP__ 16384 (184), line 0 (strx)
+ #define __LDBL_MAX__ 1.18973149535723176502e+4932L (185), line 0 (strx)
+ #define __LDBL_MIN_10_EXP__ (-4931) (186), line 0 (strx)
+ #define __LDBL_MIN_EXP__ (-16381) (187), line 0 (strx)
+ #define __LDBL_MIN__ 3.36210314311209350626e-4932L (188), line 0 (strx)
+ #define __POINTER_WIDTH__ 64 (189), line 0 (strx)
+ #define __BIGGEST_ALIGNMENT__ 16 (190), line 0 (strx)
+ #define __WINT_UNSIGNED__ 1 (191), line 0 (strx)
+ #define __INT8_TYPE__ signed char (192), line 0 (strx)
+ #define __INT8_FMTd__ "hhd" (193), line 0 (strx)
+ #define __INT8_FMTi__ "hhi" (194), line 0 (strx)
+ #define __INT8_C_SUFFIX__ (195), line 0 (strx)
+ #define __INT16_TYPE__ short (196), line 0 (strx)
+ #define __INT16_FMTd__ "hd" (197), line 0 (strx)
+ #define __INT16_FMTi__ "hi" (198), line 0 (strx)
+ #define __INT16_C_SUFFIX__ (199), line 0 (strx)
+ #define __INT32_TYPE__ int (200), line 0 (strx)
+ #define __INT32_FMTd__ "d" (201), line 0 (strx)
+ #define __INT32_FMTi__ "i" (202), line 0 (strx)
+ #define __INT32_C_SUFFIX__ (203), line 0 (strx)
+ #define __INT64_TYPE__ long int (204), line 0 (strx)
+ #define __INT64_FMTd__ "ld" (205), line 0 (strx)
+ #define __INT64_FMTi__ "li" (206), line 0 (strx)
+ #define __INT64_C_SUFFIX__ L (207), line 0 (strx)
+ #define __UINT8_TYPE__ unsigned char (208), line 0 (strx)
+ #define __UINT8_FMTo__ "hho" (209), line 0 (strx)
+ #define __UINT8_FMTu__ "hhu" (210), line 0 (strx)
+ #define __UINT8_FMTx__ "hhx" (211), line 0 (strx)
+ #define __UINT8_FMTX__ "hhX" (212), line 0 (strx)
+ #define __UINT8_C_SUFFIX__ (213), line 0 (strx)
+ #define __UINT8_MAX__ 255 (214), line 0 (strx)
+ #define __INT8_MAX__ 127 (215), line 0 (strx)
+ #define __UINT16_TYPE__ unsigned short (216), line 0 (strx)
+ #define __UINT16_FMTo__ "ho" (217), line 0 (strx)
+ #define __UINT16_FMTu__ "hu" (218), line 0 (strx)
+ #define __UINT16_FMTx__ "hx" (219), line 0 (strx)
+ #define __UINT16_FMTX__ "hX" (220), line 0 (strx)
+ #define __UINT16_C_SUFFIX__ (221), line 0 (strx)
+ #define __UINT16_MAX__ 65535 (222), line 0 (strx)
+ #define __INT16_MAX__ 32767 (223), line 0 (strx)
+ #define __UINT32_TYPE__ unsigned int (224), line 0 (strx)
+ #define __UINT32_FMTo__ "o" (225), line 0 (strx)
+ #define __UINT32_FMTu__ "u" (226), line 0 (strx)
+ #define __UINT32_FMTx__ "x" (227), line 0 (strx)
+ #define __UINT32_FMTX__ "X" (228), line 0 (strx)
+ #define __UINT32_C_SUFFIX__ U (229), line 0 (strx)
+ #define __UINT32_MAX__ 4294967295U (230), line 0 (strx)
+ #define __INT32_MAX__ 2147483647 (231), line 0 (strx)
+ #define __UINT64_TYPE__ long unsigned int (232), line 0 (strx)
+ #define __UINT64_FMTo__ "lo" (233), line 0 (strx)
+ #define __UINT64_FMTu__ "lu" (234), line 0 (strx)
+ #define __UINT64_FMTx__ "lx" (235), line 0 (strx)
+ #define __UINT64_FMTX__ "lX" (236), line 0 (strx)
+ #define __UINT64_C_SUFFIX__ UL (237), line 0 (strx)
+ #define __UINT64_MAX__ 18446744073709551615UL (238), line 0 (strx)
+ #define __INT64_MAX__ 9223372036854775807L (239), line 0 (strx)
+ #define __INT_LEAST8_TYPE__ signed char (240), line 0 (strx)
+ #define __INT_LEAST8_MAX__ 127 (241), line 0 (strx)
+ #define __INT_LEAST8_WIDTH__ 8 (242), line 0 (strx)
+ #define __INT_LEAST8_FMTd__ "hhd" (243), line 0 (strx)
+ #define __INT_LEAST8_FMTi__ "hhi" (244), line 0 (strx)
+ #define __UINT_LEAST8_TYPE__ unsigned char (245), line 0 (strx)
+ #define __UINT_LEAST8_MAX__ 255 (246), line 0 (strx)
+ #define __UINT_LEAST8_FMTo__ "hho" (247), line 0 (strx)
+ #define __UINT_LEAST8_FMTu__ "hhu" (248), line 0 (strx)
+ #define __UINT_LEAST8_FMTx__ "hhx" (249), line 0 (strx)
+ #define __UINT_LEAST8_FMTX__ "hhX" (250), line 0 (strx)
+ #define __INT_LEAST16_TYPE__ short (251), line 0 (strx)
+ #define __INT_LEAST16_MAX__ 32767 (252), line 0 (strx)
+ #define __INT_LEAST16_WIDTH__ 16 (253), line 0 (strx)
+ #define __INT_LEAST16_FMTd__ "hd" (254), line 0 (strx)
+ #define __INT_LEAST16_FMTi__ "hi" (255), line 0 (strx)
+ #define __UINT_LEAST16_TYPE__ unsigned short (256), line 0 (strx)
+ #define __UINT_LEAST16_MAX__ 65535 (257), line 0 (strx)
+ #define __UINT_LEAST16_FMTo__ "ho" (258), line 0 (strx)
+ #define __UINT_LEAST16_FMTu__ "hu" (259), line 0 (strx)
+ #define __UINT_LEAST16_FMTx__ "hx" (260), line 0 (strx)
+ #define __UINT_LEAST16_FMTX__ "hX" (261), line 0 (strx)
+ #define __INT_LEAST32_TYPE__ int (262), line 0 (strx)
+ #define __INT_LEAST32_MAX__ 2147483647 (263), line 0 (strx)
+ #define __INT_LEAST32_WIDTH__ 32 (264), line 0 (strx)
+ #define __INT_LEAST32_FMTd__ "d" (265), line 0 (strx)
+ #define __INT_LEAST32_FMTi__ "i" (266), line 0 (strx)
+ #define __UINT_LEAST32_TYPE__ unsigned int (267), line 0 (strx)
+ #define __UINT_LEAST32_MAX__ 4294967295U (268), line 0 (strx)
+ #define __UINT_LEAST32_FMTo__ "o" (269), line 0 (strx)
+ #define __UINT_LEAST32_FMTu__ "u" (270), line 0 (strx)
+ #define __UINT_LEAST32_FMTx__ "x" (271), line 0 (strx)
+ #define __UINT_LEAST32_FMTX__ "X" (272), line 0 (strx)
+ #define __INT_LEAST64_TYPE__ long int (273), line 0 (strx)
+ #define __INT_LEAST64_MAX__ 9223372036854775807L (274), line 0 (strx)
+ #define __INT_LEAST64_WIDTH__ 64 (275), line 0 (strx)
+ #define __INT_LEAST64_FMTd__ "ld" (276), line 0 (strx)
+ #define __INT_LEAST64_FMTi__ "li" (277), line 0 (strx)
+ #define __UINT_LEAST64_TYPE__ long unsigned int (278), line 0 (strx)
+ #define __UINT_LEAST64_MAX__ 18446744073709551615UL (279), line 0 (strx)
+ #define __UINT_LEAST64_FMTo__ "lo" (280), line 0 (strx)
+ #define __UINT_LEAST64_FMTu__ "lu" (281), line 0 (strx)
+ #define __UINT_LEAST64_FMTx__ "lx" (282), line 0 (strx)
+ #define __UINT_LEAST64_FMTX__ "lX" (283), line 0 (strx)
+ #define __INT_FAST8_TYPE__ signed char (284), line 0 (strx)
+ #define __INT_FAST8_MAX__ 127 (285), line 0 (strx)
+ #define __INT_FAST8_WIDTH__ 8 (286), line 0 (strx)
+ #define __INT_FAST8_FMTd__ "hhd" (287), line 0 (strx)
+ #define __INT_FAST8_FMTi__ "hhi" (288), line 0 (strx)
+ #define __UINT_FAST8_TYPE__ unsigned char (289), line 0 (strx)
+ #define __UINT_FAST8_MAX__ 255 (290), line 0 (strx)
+ #define __UINT_FAST8_FMTo__ "hho" (291), line 0 (strx)
+ #define __UINT_FAST8_FMTu__ "hhu" (292), line 0 (strx)
+ #define __UINT_FAST8_FMTx__ "hhx" (293), line 0 (strx)
+ #define __UINT_FAST8_FMTX__ "hhX" (294), line 0 (strx)
+ #define __INT_FAST16_TYPE__ short (295), line 0 (strx)
+ #define __INT_FAST16_MAX__ 32767 (296), line 0 (strx)
+ #define __INT_FAST16_WIDTH__ 16 (297), line 0 (strx)
+ #define __INT_FAST16_FMTd__ "hd" (298), line 0 (strx)
+ #define __INT_FAST16_FMTi__ "hi" (299), line 0 (strx)
+ #define __UINT_FAST16_TYPE__ unsigned short (300), line 0 (strx)
+ #define __UINT_FAST16_MAX__ 65535 (301), line 0 (strx)
+ #define __UINT_FAST16_FMTo__ "ho" (302), line 0 (strx)
+ #define __UINT_FAST16_FMTu__ "hu" (303), line 0 (strx)
+ #define __UINT_FAST16_FMTx__ "hx" (304), line 0 (strx)
+ #define __UINT_FAST16_FMTX__ "hX" (305), line 0 (strx)
+ #define __INT_FAST32_TYPE__ int (306), line 0 (strx)
+ #define __INT_FAST32_MAX__ 2147483647 (307), line 0 (strx)
+ #define __INT_FAST32_WIDTH__ 32 (308), line 0 (strx)
+ #define __INT_FAST32_FMTd__ "d" (309), line 0 (strx)
+ #define __INT_FAST32_FMTi__ "i" (310), line 0 (strx)
+ #define __UINT_FAST32_TYPE__ unsigned int (311), line 0 (strx)
+ #define __UINT_FAST32_MAX__ 4294967295U (312), line 0 (strx)
+ #define __UINT_FAST32_FMTo__ "o" (313), line 0 (strx)
+ #define __UINT_FAST32_FMTu__ "u" (314), line 0 (strx)
+ #define __UINT_FAST32_FMTx__ "x" (315), line 0 (strx)
+ #define __UINT_FAST32_FMTX__ "X" (316), line 0 (strx)
+ #define __INT_FAST64_TYPE__ long int (317), line 0 (strx)
+ #define __INT_FAST64_MAX__ 9223372036854775807L (318), line 0 (strx)
+ #define __INT_FAST64_WIDTH__ 64 (319), line 0 (strx)
+ #define __INT_FAST64_FMTd__ "ld" (320), line 0 (strx)
+ #define __INT_FAST64_FMTi__ "li" (321), line 0 (strx)
+ #define __UINT_FAST64_TYPE__ long unsigned int (322), line 0 (strx)
+ #define __UINT_FAST64_MAX__ 18446744073709551615UL (323), line 0 (strx)
+ #define __UINT_FAST64_FMTo__ "lo" (324), line 0 (strx)
+ #define __UINT_FAST64_FMTu__ "lu" (325), line 0 (strx)
+ #define __UINT_FAST64_FMTx__ "lx" (326), line 0 (strx)
+ #define __UINT_FAST64_FMTX__ "lX" (327), line 0 (strx)
+ #define __USER_LABEL_PREFIX__ (328), line 0 (strx)
+ #define __FINITE_MATH_ONLY__ 0 (329), line 0 (strx)
+ #define __GNUC_STDC_INLINE__ 1 (330), line 0 (strx)
+ #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 (331), line 0 (strx)
+ #define __CLANG_ATOMIC_BOOL_LOCK_FREE 2 (332), line 0 (strx)
+ #define __CLANG_ATOMIC_CHAR_LOCK_FREE 2 (333), line 0 (strx)
+ #define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2 (334), line 0 (strx)
+ #define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2 (335), line 0 (strx)
+ #define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2 (336), line 0 (strx)
+ #define __CLANG_ATOMIC_SHORT_LOCK_FREE 2 (337), line 0 (strx)
+ #define __CLANG_ATOMIC_INT_LOCK_FREE 2 (338), line 0 (strx)
+ #define __CLANG_ATOMIC_LONG_LOCK_FREE 2 (339), line 0 (strx)
+ #define __CLANG_ATOMIC_LLONG_LOCK_FREE 2 (340), line 0 (strx)
+ #define __CLANG_ATOMIC_POINTER_LOCK_FREE 2 (341), line 0 (strx)
+ #define __GCC_ATOMIC_BOOL_LOCK_FREE 2 (342), line 0 (strx)
+ #define __GCC_ATOMIC_CHAR_LOCK_FREE 2 (343), line 0 (strx)
+ #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 (344), line 0 (strx)
+ #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 (345), line 0 (strx)
+ #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 (346), line 0 (strx)
+ #define __GCC_ATOMIC_SHORT_LOCK_FREE 2 (347), line 0 (strx)
+ #define __GCC_ATOMIC_INT_LOCK_FREE 2 (348), line 0 (strx)
+ #define __GCC_ATOMIC_LONG_LOCK_FREE 2 (349), line 0 (strx)
+ #define __GCC_ATOMIC_LLONG_LOCK_FREE 2 (350), line 0 (strx)
+ #define __GCC_ATOMIC_POINTER_LOCK_FREE 2 (351), line 0 (strx)
+ #define __NO_INLINE__ 1 (352), line 0 (strx)
+ #define __FLT_RADIX__ 2 (353), line 0 (strx)
+ #define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ (354), line 0 (strx)
+ #define __ELF__ 1 (355), line 0 (strx)
+ #define __GCC_ASM_FLAG_OUTPUTS__ 1 (356), line 0 (strx)
+ #define __code_model_small__ 1 (357), line 0 (strx)
+ #define __amd64__ 1 (358), line 0 (strx)
+ #define __amd64 1 (359), line 0 (strx)
+ #define __x86_64 1 (360), line 0 (strx)
+ #define __x86_64__ 1 (361), line 0 (strx)
+ #define __SEG_GS 1 (362), line 0 (strx)
+ #define __SEG_FS 1 (363), line 0 (strx)
+ #define __seg_gs __attribute__((address_space(256))) (364), line 0 (strx)
+ #define __seg_fs __attribute__((address_space(257))) (365), line 0 (strx)
+ #define __k8 1 (366), line 0 (strx)
+ #define __k8__ 1 (367), line 0 (strx)
+ #define __tune_k8__ 1 (368), line 0 (strx)
+ #define __REGISTER_PREFIX__ (369), line 0 (strx)
+ #define __NO_MATH_INLINES 1 (370), line 0 (strx)
+ #define __FXSR__ 1 (371), line 0 (strx)
+ #define __SSE2__ 1 (372), line 0 (strx)
+ #define __SSE2_MATH__ 1 (373), line 0 (strx)
+ #define __SSE__ 1 (374), line 0 (strx)
+ #define __SSE_MATH__ 1 (375), line 0 (strx)
+ #define __MMX__ 1 (376), line 0 (strx)
+ #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 (377), line 0 (strx)
+ #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 (378), line 0 (strx)
+ #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 (379), line 0 (strx)
+ #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 (380), line 0 (strx)
+ #define __SIZEOF_FLOAT128__ 16 (381), line 0 (strx)
+ #define unix 1 (382), line 0 (strx)
+ #define __unix 1 (383), line 0 (strx)
+ #define __unix__ 1 (384), line 0 (strx)
+ #define linux 1 (385), line 0 (strx)
+ #define __linux 1 (386), line 0 (strx)
+ #define __linux__ 1 (387), line 0 (strx)
+ #define __gnu_linux__ 1 (388), line 0 (strx)
+ #define __FLOAT128__ 1 (389), line 0 (strx)
+ #define __STDC__ 1 (390), line 0 (strx)
+ #define __STDC_HOSTED__ 1 (391), line 0 (strx)
+ #define __STDC_VERSION__ 201710L (392), line 0 (strx)
+ #define __STDC_UTF_16__ 1 (393), line 0 (strx)
+ #define __STDC_UTF_32__ 1 (394), line 0 (strx)
+ #define __GCC_HAVE_DWARF2_CFI_ASM 1 (395), line 0 (strx)
+
+EOF
diff --git a/tests/testfileclangmacro.bz2 b/tests/testfileclangmacro.bz2
new file mode 100755
index 0000000000000000000000000000000000000000..298d57792d03449a2063a904961b36ae1bcca2ab
GIT binary patch
literal 7985
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
TdMZ==hrvf#Qa9z_U*!J_1}K<+

literal 0
HcmV?d00001

-- 
2.44.0