git-compat-util: st_add4: work around gcc 4.2.x compiler crash
Although changes by 5b442c4 (tree-diff: catch integer overflow in
combine_diff_path allocation, 2016-02-19) are perfectly valid, they
unfortunately trigger an internal compiler error in gcc 4.2.x:
    combine-diff.c: In function 'diff_tree_combined':
    combine-diff.c:1391: internal compiler error: Segmentation fault: 11
Experimentation reveals that changing st_add4()'s argument evaluation
order is sufficient to sidestep this problem.
Although st_add3() does not trigger the compiler bug, for style
consistency, change its argument evaluation order to match.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
			
			
				maint
			
			
		
							parent
							
								
									935de81289
								
							
						
					
					
						commit
						d616fbf256
					
				|  | @ -713,8 +713,8 @@ static inline size_t st_add(size_t a, size_t b) | ||||||
| 		    (uintmax_t)a, (uintmax_t)b); | 		    (uintmax_t)a, (uintmax_t)b); | ||||||
| 	return a + b; | 	return a + b; | ||||||
| } | } | ||||||
| #define st_add3(a,b,c)   st_add((a),st_add((b),(c))) | #define st_add3(a,b,c)   st_add(st_add((a),(b)),(c)) | ||||||
| #define st_add4(a,b,c,d) st_add((a),st_add3((b),(c),(d))) | #define st_add4(a,b,c,d) st_add(st_add3((a),(b),(c)),(d)) | ||||||
|  |  | ||||||
| static inline size_t st_mult(size_t a, size_t b) | static inline size_t st_mult(size_t a, size_t b) | ||||||
| { | { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Eric Sunshine
						Eric Sunshine