From f15b19d8e058c983c49c4566c1879fdaf5b1ab54 Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Tue, 10 Mar 2020 08:26:53 -0700
Subject: [PATCH] gentypes/genmodes: Do not use __LINE__ for maintaining
 reproducibility

Inserting line numbers into generated code means its not always reproducible wth
differing versions of host gcc. Void the issue by not adding these.

Upstream-Status: Inappropriate [OE Reproducibility specific]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 gcc/gengtype.cc |  6 +++---
 gcc/genmodes.cc | 32 ++++++++++++++++----------------
 2 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/gcc/gengtype.cc b/gcc/gengtype.cc
index 7763f40e9ab..4f0c1eb1508 100644
--- a/gcc/gengtype.cc
+++ b/gcc/gengtype.cc
@@ -1005,7 +1005,7 @@ create_field_at (pair_p next, type_p type, const char *name, options_p opt,
 /* Create a fake field with the given type and name.  NEXT is the next
    field in the chain.  */
 #define create_field(next,type,name) \
-    create_field_all (next,type,name, 0, this_file, __LINE__)
+    create_field_all (next,type,name, 0, this_file, 0)
 
 /* Like create_field, but the field is only valid when condition COND
    is true.  */
@@ -1038,7 +1038,7 @@ create_optional_field_ (pair_p next, type_p type, const char *name,
 }
 
 #define create_optional_field(next,type,name,cond)	\
-       create_optional_field_(next,type,name,cond,__LINE__)
+       create_optional_field_(next,type,name,cond,0)
 
 /* Reverse a linked list of 'struct pair's in place.  */
 pair_p
@@ -5223,7 +5223,7 @@ main (int argc, char **argv)
       /* These types are set up with #define or else outside of where
          we can see them.  We should initialize them before calling
          read_input_list.  */
-#define POS_HERE(Call) do { pos.file = this_file; pos.line = __LINE__; \
+#define POS_HERE(Call) do { pos.file = this_file; pos.line = 0; \
 	Call;} while (0)
       POS_HERE (do_scalar_typedef ("CUMULATIVE_ARGS", &pos));
       POS_HERE (do_scalar_typedef ("REAL_VALUE_TYPE", &pos));
diff --git a/gcc/genmodes.cc b/gcc/genmodes.cc
index 715787b8f48..302adff28d5 100644
--- a/gcc/genmodes.cc
+++ b/gcc/genmodes.cc
@@ -441,7 +441,7 @@ complete_all_modes (void)
 }
 
 /* For each mode in class CLASS, construct a corresponding complex mode.  */
-#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, __LINE__)
+#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, 0)
 static void
 make_complex_modes (enum mode_class cl,
 		    const char *file, unsigned int line)
@@ -500,7 +500,7 @@ make_complex_modes (enum mode_class cl,
    having as many components as necessary.  ORDER is the sorting order
    of the mode, with smaller numbers indicating a higher priority.  */
 #define VECTOR_MODES_WITH_PREFIX(PREFIX, C, W, ORDER) \
-  make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, __LINE__)
+  make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, 0)
 #define VECTOR_MODES(C, W) VECTOR_MODES_WITH_PREFIX (V, C, W, 0)
 static void ATTRIBUTE_UNUSED
 make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width,
@@ -553,7 +553,7 @@ make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width,
    BYTESIZE bytes in total.  */
 #define VECTOR_BOOL_MODE(NAME, COUNT, COMPONENT, BYTESIZE)		\
   make_vector_bool_mode (#NAME, COUNT, #COMPONENT, BYTESIZE,		\
-			 __FILE__, __LINE__)
+			 __FILE__, 0)
 static void ATTRIBUTE_UNUSED
 make_vector_bool_mode (const char *name, unsigned int count,
 		       const char *component, unsigned int bytesize,
@@ -575,7 +575,7 @@ make_vector_bool_mode (const char *name, unsigned int count,
 /* Input.  */
 
 #define _SPECIAL_MODE(C, N) \
-  make_special_mode (MODE_##C, #N, __FILE__, __LINE__)
+  make_special_mode (MODE_##C, #N, __FILE__, 0)
 #define RANDOM_MODE(N) _SPECIAL_MODE (RANDOM, N)
 #define CC_MODE(N) _SPECIAL_MODE (CC, N)
 
@@ -588,7 +588,7 @@ make_special_mode (enum mode_class cl, const char *name,
 
 #define INT_MODE(N, Y) FRACTIONAL_INT_MODE (N, -1U, Y)
 #define FRACTIONAL_INT_MODE(N, B, Y) \
-  make_int_mode (#N, B, Y, __FILE__, __LINE__)
+  make_int_mode (#N, B, Y, __FILE__, 0)
 
 static void
 make_int_mode (const char *name,
@@ -629,16 +629,16 @@ make_opaque_mode (const char *name,
 }
 
 #define FRACT_MODE(N, Y, F) \
-	make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, __LINE__)
+	make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, 0)
 
 #define UFRACT_MODE(N, Y, F) \
-	make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, __LINE__)
+	make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, 0)
 
 #define ACCUM_MODE(N, Y, I, F) \
-	make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, __LINE__)
+	make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, 0)
 
 #define UACCUM_MODE(N, Y, I, F) \
-	make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, __LINE__)
+	make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, 0)
 
 /* Create a fixed-point mode by setting CL, NAME, BYTESIZE, IBIT, FBIT,
    FILE, and LINE.  */
@@ -659,7 +659,7 @@ make_fixed_point_mode (enum mode_class cl,
 
 #define FLOAT_MODE(N, Y, F)             FRACTIONAL_FLOAT_MODE (N, -1U, Y, F)
 #define FRACTIONAL_FLOAT_MODE(N, B, Y, F) \
-  make_float_mode (#N, B, Y, #F, __FILE__, __LINE__)
+  make_float_mode (#N, B, Y, #F, __FILE__, 0)
 
 static void
 make_float_mode (const char *name,
@@ -676,7 +676,7 @@ make_float_mode (const char *name,
 #define DECIMAL_FLOAT_MODE(N, Y, F)	\
 	FRACTIONAL_DECIMAL_FLOAT_MODE (N, -1U, Y, F)
 #define FRACTIONAL_DECIMAL_FLOAT_MODE(N, B, Y, F)	\
-  make_decimal_float_mode (#N, B, Y, #F, __FILE__, __LINE__)
+  make_decimal_float_mode (#N, B, Y, #F, __FILE__, 0)
 
 static void
 make_decimal_float_mode (const char *name,
@@ -691,7 +691,7 @@ make_decimal_float_mode (const char *name,
 }
 
 #define RESET_FLOAT_FORMAT(N, F) \
-  reset_float_format (#N, #F, __FILE__, __LINE__)
+  reset_float_format (#N, #F, __FILE__, 0)
 static void ATTRIBUTE_UNUSED
 reset_float_format (const char *name, const char *format,
 		    const char *file, unsigned int line)
@@ -712,7 +712,7 @@ reset_float_format (const char *name, const char *format,
 
 /* __intN support.  */
 #define INT_N(M,PREC)				\
-  make_int_n (#M, PREC, __FILE__, __LINE__)
+  make_int_n (#M, PREC, __FILE__, 0)
 static void ATTRIBUTE_UNUSED
 make_int_n (const char *m, int bitsize,
             const char *file, unsigned int line)
@@ -741,7 +741,7 @@ make_int_n (const char *m, int bitsize,
 /* Partial integer modes are specified by relation to a full integer
    mode.  */
 #define PARTIAL_INT_MODE(M,PREC,NAME)				\
-  make_partial_integer_mode (#M, #NAME, PREC, __FILE__, __LINE__)
+  make_partial_integer_mode (#M, #NAME, PREC, __FILE__, 0)
 static void ATTRIBUTE_UNUSED
 make_partial_integer_mode (const char *base, const char *name,
 			   unsigned int precision,
@@ -768,7 +768,7 @@ make_partial_integer_mode (const char *base, const char *name,
 /* A single vector mode can be specified by naming its component
    mode and the number of components.  */
 #define VECTOR_MODE_WITH_PREFIX(PREFIX, C, M, N, ORDER) \
-  make_vector_mode (MODE_##C, #PREFIX, #M, N, ORDER, __FILE__, __LINE__);
+  make_vector_mode (MODE_##C, #PREFIX, #M, N, ORDER, __FILE__, 0);
 #define VECTOR_MODE(C, M, N) VECTOR_MODE_WITH_PREFIX(V, C, M, N, 0);
 static void ATTRIBUTE_UNUSED
 make_vector_mode (enum mode_class bclass,
@@ -815,7 +815,7 @@ make_vector_mode (enum mode_class bclass,
 
 /* Adjustability.  */
 #define _ADD_ADJUST(A, M, X, C1, C2) \
-  new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, __LINE__)
+  new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, 0)
 
 #define ADJUST_NUNITS(M, X)    _ADD_ADJUST (nunits, M, X, RANDOM, RANDOM)
 #define ADJUST_BYTESIZE(M, X)  _ADD_ADJUST (bytesize, M, X, RANDOM, RANDOM)
