|  | @@ -10526,7 +10526,13 @@ ssl_id_callback(void)
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		return tls->thread_idx;
 | 
	
		
			
				|  |  |  	} else {
 | 
	
		
			
				|  |  | -		return (unsigned long)((void*)pthread_self());
 | 
	
		
			
				|  |  | +        /* pthread_t may be any data type, so a simple cast to unsigned long
 | 
	
		
			
				|  |  | +         * can rise a warning/error, depending on the platform.
 | 
	
		
			
				|  |  | +         * Here memcpy is used as an anything-to-anything cast. */
 | 
	
		
			
				|  |  | +        unsigned long ret = 0;
 | 
	
		
			
				|  |  | +        pthread_t t = pthread_self();
 | 
	
		
			
				|  |  | +        memcpy(&ret, &t, sizeof(pthread_t));
 | 
	
		
			
				|  |  | +		return ret;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #ifdef __clang__
 |