Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1434)

Side by Side Diff: source/common/putilimp.h

Issue 1621843002: ICU 56 update step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@561
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/common/putil.cpp ('k') | source/common/rbbiscan.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 ****************************************************************************** 2 ******************************************************************************
3 * 3 *
4 * Copyright (C) 1997-2015, International Business Machines 4 * Copyright (C) 1997-2015, International Business Machines
5 * Corporation and others. All Rights Reserved. 5 * Corporation and others. All Rights Reserved.
6 * 6 *
7 ****************************************************************************** 7 ******************************************************************************
8 * 8 *
9 * FILE NAME : putilimp.h 9 * FILE NAME : putilimp.h
10 * 10 *
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 205
206 /** 206 /**
207 * \def U_HAVE_STD_ATOMICS 207 * \def U_HAVE_STD_ATOMICS
208 * Defines whether the standard C++11 <atomic> is available. 208 * Defines whether the standard C++11 <atomic> is available.
209 * ICU will use this when avialable, 209 * ICU will use this when avialable,
210 * otherwise will fall back to compiler or platform specific alternatives. 210 * otherwise will fall back to compiler or platform specific alternatives.
211 * @internal 211 * @internal
212 */ 212 */
213 #ifdef U_HAVE_STD_ATOMICS 213 #ifdef U_HAVE_STD_ATOMICS
214 /* Use the predefined value. */ 214 /* Use the predefined value. */
215 #elif !defined(__cplusplus) || __cplusplus<201103L 215 #elif U_CPLUSPLUS_VERSION < 11
216 /* Not C++11, disable use of atomics */ 216 /* Not C++11, disable use of atomics */
217 # define U_HAVE_STD_ATOMICS 0 217 # define U_HAVE_STD_ATOMICS 0
218 #elif __clang__ && __clang_major__==3 && __clang_minor__<=1 218 #elif __clang__ && __clang_major__==3 && __clang_minor__<=1
219 /* Clang 3.1, has atomic variable initializer bug. */ 219 /* Clang 3.1, has atomic variable initializer bug. */
220 # define U_HAVE_STD_ATOMICS 0 220 # define U_HAVE_STD_ATOMICS 0
221 #else 221 #else
222 /* U_HAVE_ATOMIC is typically set by an autoconf test of #include <atomic> */ 222 /* U_HAVE_ATOMIC is typically set by an autoconf test of #include <atomic> */
223 /* Can be set manually, or left undefined, on platforms without autoconf. */ 223 /* Can be set manually, or left undefined, on platforms without autoconf. */
224 # if defined(U_HAVE_ATOMIC) && U_HAVE_ATOMIC 224 # if defined(U_HAVE_ATOMIC) && U_HAVE_ATOMIC
225 # define U_HAVE_STD_ATOMICS 1 225 # define U_HAVE_STD_ATOMICS 1
226 # else 226 # else
227 # define U_HAVE_STD_ATOMICS 0 227 # define U_HAVE_STD_ATOMICS 0
228 # endif 228 # endif
229 #endif 229 #endif
230 230
231 231
232 /** 232 /**
233 * \def U_HAVE_CLANG_ATOMICS 233 * \def U_HAVE_CLANG_ATOMICS
234 * Defines whether Clang c11 style built-in atomics are avaialable. 234 * Defines whether Clang c11 style built-in atomics are avaialable.
235 * These are used in preference to gcc atomics when both are available. 235 * These are used in preference to gcc atomics when both are available.
236 */ 236 */
237 #ifdef U_HAVE_CLANG_ATOMICS 237 #ifdef U_HAVE_CLANG_ATOMICS
238 /* Use the predefined value. */ 238 /* Use the predefined value. */
239 #elif !defined(__clang__) 239 #elif __has_builtin(__c11_atomic_load) && \
240 # define U_HAVE_CLANG_ATOMICS 0
241 #else
242 #if __has_builtin(__c11_atomic_load) && \
243 __has_builtin(__c11_atomic_store) && \ 240 __has_builtin(__c11_atomic_store) && \
244 __has_builtin(__c11_atomic_fetch_add) && \ 241 __has_builtin(__c11_atomic_fetch_add) && \
245 __has_builtin(__c11_atomic_fetch_sub) 242 __has_builtin(__c11_atomic_fetch_sub)
246 # define U_HAVE_CLANG_ATOMICS 1 243 # define U_HAVE_CLANG_ATOMICS 1
247 #else 244 #else
248 # define U_HAVE_CLANG_ATOMICS 0 245 # define U_HAVE_CLANG_ATOMICS 0
249 #endif 246 #endif
250 #endif
251
252 /*===========================================================================*/
253 /** @{ Code alignment */
254 /*===========================================================================*/
255
256 /**
257 * \def U_ALIGN_CODE
258 * This is used to align code fragments to a specific byte boundary.
259 * This is useful for getting consistent performance test results.
260 * @internal
261 */
262 #ifdef U_ALIGN_CODE
263 /* Use the predefined value. */
264 #elif defined(_MSC_VER) && defined(_M_IX86) && !defined(_MANAGED)
265 # define U_ALIGN_CODE(boundarySize) __asm align boundarySize
266 #else
267 # define U_ALIGN_CODE(boundarySize)
268 #endif
269
270 /** @} */
271 247
272 /*===========================================================================*/ 248 /*===========================================================================*/
273 /** @{ Programs used by ICU code */ 249 /** @{ Programs used by ICU code */
274 /*===========================================================================*/ 250 /*===========================================================================*/
275 251
276 /** 252 /**
277 * \def U_MAKE_IS_NMAKE 253 * \def U_MAKE_IS_NMAKE
278 * Defines whether the "make" program is Windows nmake. 254 * Defines whether the "make" program is Windows nmake.
279 */ 255 */
280 #ifdef U_MAKE_IS_NMAKE 256 #ifdef U_MAKE_IS_NMAKE
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 * tzname(0) Three-letter time-zone name derived from TZ environment 472 * tzname(0) Three-letter time-zone name derived from TZ environment
497 * variable. E.g., "PST". 473 * variable. E.g., "PST".
498 * tzname(1) Three-letter DST zone name derived from TZ environment 474 * tzname(1) Three-letter DST zone name derived from TZ environment
499 * variable. E.g., "PDT". If DST zone is omitted from TZ, 475 * variable. E.g., "PDT". If DST zone is omitted from TZ,
500 * tzname(1) is an empty string. 476 * tzname(1) is an empty string.
501 * @internal 477 * @internal
502 */ 478 */
503 U_INTERNAL const char* U_EXPORT2 uprv_tzname(int n); 479 U_INTERNAL const char* U_EXPORT2 uprv_tzname(int n);
504 480
505 /** 481 /**
506 * Reset the global tzname cache.
507 * @internal
508 */
509 U_INTERNAL void uprv_tzname_clear_cache();
510
511 /**
512 * Get UTC (GMT) time measured in milliseconds since 0:00 on 1/1/1970. 482 * Get UTC (GMT) time measured in milliseconds since 0:00 on 1/1/1970.
513 * This function is affected by 'faketime' and should be the bottleneck for all user-visible ICU time functions. 483 * This function is affected by 'faketime' and should be the bottleneck for all user-visible ICU time functions.
514 * @return the UTC time measured in milliseconds 484 * @return the UTC time measured in milliseconds
515 * @internal 485 * @internal
516 */ 486 */
517 U_INTERNAL UDate U_EXPORT2 uprv_getUTCtime(void); 487 U_INTERNAL UDate U_EXPORT2 uprv_getUTCtime(void);
518 488
519 /** 489 /**
520 * Get UTC (GMT) time measured in milliseconds since 0:00 on 1/1/1970. 490 * Get UTC (GMT) time measured in milliseconds since 0:00 on 1/1/1970.
521 * This function is not affected by 'faketime', so it should only be used by low level test functions- not by anything that 491 * This function is not affected by 'faketime', so it should only be used by low level test functions- not by anything that
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 /* also _C_TS_calloc(x) */ 598 /* also _C_TS_calloc(x) */
629 #else 599 #else
630 /* C defaults */ 600 /* C defaults */
631 # define uprv_default_malloc(x) malloc(x) 601 # define uprv_default_malloc(x) malloc(x)
632 # define uprv_default_realloc(x,y) realloc(x,y) 602 # define uprv_default_realloc(x,y) realloc(x,y)
633 # define uprv_default_free(x) free(x) 603 # define uprv_default_free(x) free(x)
634 #endif 604 #endif
635 605
636 606
637 #endif 607 #endif
OLDNEW
« no previous file with comments | « source/common/putil.cpp ('k') | source/common/rbbiscan.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698