include: drop obsolete check for typeof operator
It really seems that compilers on all our supported platforms (including Solaris) supporting `typeof`, so we can always use it and drop hacks with undefind behaviour entirely. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1432>
This commit is contained in:
		
							parent
							
								
									17db4ba3de
								
							
						
					
					
						commit
						86d0f6dafa
					
				|  | @ -236,19 +236,11 @@ extern DevPrivateKeyRec exaScreenPrivateKeyRec; | ||||||
|     real->mem = priv->Saved##mem; \ |     real->mem = priv->Saved##mem; \ | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ifdef HAVE_TYPEOF |  | ||||||
| #define swap(priv, real, mem) {\ | #define swap(priv, real, mem) {\ | ||||||
|     typeof(real->mem) tmp = priv->Saved##mem; \ |     typeof(real->mem) tmp = priv->Saved##mem; \ | ||||||
|     priv->Saved##mem = real->mem; \ |     priv->Saved##mem = real->mem; \ | ||||||
|     real->mem = tmp; \ |     real->mem = tmp; \ | ||||||
| } | } | ||||||
| #else |  | ||||||
| #define swap(priv, real, mem) {\ |  | ||||||
|     const void *tmp = priv->Saved##mem; \ |  | ||||||
|     priv->Saved##mem = real->mem; \ |  | ||||||
|     real->mem = tmp; \ |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| #define EXA_PRE_FALLBACK(_screen_) \ | #define EXA_PRE_FALLBACK(_screen_) \ | ||||||
|     ExaScreenPriv(_screen_); \ |     ExaScreenPriv(_screen_); \ | ||||||
|  |  | ||||||
|  | @ -274,19 +274,8 @@ xorg_list_is_empty(struct xorg_list *head) | ||||||
| #define xorg_list_last_entry(ptr, type, member) \ | #define xorg_list_last_entry(ptr, type, member) \ | ||||||
|     xorg_list_entry((ptr)->prev, type, member) |     xorg_list_entry((ptr)->prev, type, member) | ||||||
| 
 | 
 | ||||||
| #ifdef HAVE_TYPEOF |  | ||||||
| #define __container_of(ptr, sample, member)			\ | #define __container_of(ptr, sample, member)			\ | ||||||
|     container_of(ptr, typeof(*sample), member) |     container_of(ptr, typeof(*sample), member) | ||||||
| #else |  | ||||||
| /* This implementation of __container_of has undefined behavior according
 |  | ||||||
|  * to the C standard, but it works in many cases.  If your compiler doesn't |  | ||||||
|  * support typeof() and fails with this implementation, please try a newer |  | ||||||
|  * compiler. |  | ||||||
|  */ |  | ||||||
| #define __container_of(ptr, sample, member)                            \ |  | ||||||
|     (void *)((char *)(ptr)                                             \ |  | ||||||
|             - ((char *)&(sample)->member - (char *)(sample))) |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * Loop through the list given by head and set pos to struct in the list. |  * Loop through the list given by head and set pos to struct in the list. | ||||||
|  |  | ||||||
|  | @ -11,11 +11,6 @@ dri_dep = dependency('dri', required: build_glx) | ||||||
| conf_data = configuration_data() | conf_data = configuration_data() | ||||||
| conf_data.set('_DIX_CONFIG_H_', '1') | conf_data.set('_DIX_CONFIG_H_', '1') | ||||||
| 
 | 
 | ||||||
| conf_data.set('HAVE_TYPEOF', cc.compiles(''' |  | ||||||
|     int foo(int bar) { typeof(bar) baz = 1; return baz; } |  | ||||||
| ''', |  | ||||||
|     name: 'typeof()') ? '1' : false) |  | ||||||
| 
 |  | ||||||
| # For feature macros we're using either false (boolean) or '1', which correspond to the macro being | # For feature macros we're using either false (boolean) or '1', which correspond to the macro being | ||||||
| # not defined at all and defined to 1. This is to match autotools behavior and thus preserve | # not defined at all and defined to 1. This is to match autotools behavior and thus preserve | ||||||
| # backwards  compatibility with all the existing code that uses #ifdef to check if feature is | # backwards  compatibility with all the existing code that uses #ifdef to check if feature is | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue