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

Side by Side Diff: runtime/platform/globals.h

Issue 139043003: - Address warnings about 64-bit to 32-bit conversions. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef PLATFORM_GLOBALS_H_ 5 #ifndef PLATFORM_GLOBALS_H_
6 #define PLATFORM_GLOBALS_H_ 6 #define PLATFORM_GLOBALS_H_
7 7
8 // __STDC_FORMAT_MACROS has to be defined before including <inttypes.h> to 8 // __STDC_FORMAT_MACROS has to be defined before including <inttypes.h> to
9 // enable platform independent printf format specifiers. 9 // enable platform independent printf format specifiers.
10 #ifndef __STDC_FORMAT_MACROS 10 #ifndef __STDC_FORMAT_MACROS
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 const uint32_t kMaxUint32 = 0xFFFFFFFF; 248 const uint32_t kMaxUint32 = 0xFFFFFFFF;
249 const int64_t kMinInt64 = DART_INT64_C(0x8000000000000000); 249 const int64_t kMinInt64 = DART_INT64_C(0x8000000000000000);
250 const int64_t kMaxInt64 = DART_INT64_C(0x7FFFFFFFFFFFFFFF); 250 const int64_t kMaxInt64 = DART_INT64_C(0x7FFFFFFFFFFFFFFF);
251 const uint64_t kMaxUint64 = DART_2PART_UINT64_C(0xFFFFFFFF, FFFFFFFF); 251 const uint64_t kMaxUint64 = DART_2PART_UINT64_C(0xFFFFFFFF, FFFFFFFF);
252 252
253 // Types for native machine words. Guaranteed to be able to hold pointers and 253 // Types for native machine words. Guaranteed to be able to hold pointers and
254 // integers. 254 // integers.
255 typedef intptr_t word; 255 typedef intptr_t word;
256 typedef uintptr_t uword; 256 typedef uintptr_t uword;
257 257
258 #if defined(TARGET_OS_WINDOWS) || defined(TARGET_OS_MACOS)
259 // off64_t is not defined on Windows or Mac OS.
260 typedef int64_t off64_t;
261 #endif
262
263 // Byte sizes. 258 // Byte sizes.
264 const int kWordSize = sizeof(word); 259 const int kWordSize = sizeof(word);
265 const int kDoubleSize = sizeof(double); // NOLINT 260 const int kDoubleSize = sizeof(double); // NOLINT
266 const int kFloatSize = sizeof(float); // NOLINT 261 const int kFloatSize = sizeof(float); // NOLINT
267 const int kSimd128Size = sizeof(simd128_value_t); // NOLINT 262 const int kSimd128Size = sizeof(simd128_value_t); // NOLINT
268 #ifdef ARCH_IS_32_BIT 263 #ifdef ARCH_IS_32_BIT
269 const int kWordSizeLog2 = 2; 264 const int kWordSizeLog2 = 2;
270 const uword kUwordMax = kMaxUint32; 265 const uword kUwordMax = kMaxUint32;
271 #else 266 #else
272 const int kWordSizeLog2 = 3; 267 const int kWordSizeLog2 = 3;
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 // strtok_s. Unify on the posix name strtok_r. 457 // strtok_s. Unify on the posix name strtok_r.
463 #if defined(TARGET_OS_WINDOWS) 458 #if defined(TARGET_OS_WINDOWS)
464 #define snprintf _snprintf 459 #define snprintf _snprintf
465 #define strtok_r strtok_s 460 #define strtok_r strtok_s
466 #endif 461 #endif
467 462
468 #if !defined(TARGET_OS_WINDOWS) 463 #if !defined(TARGET_OS_WINDOWS)
469 #if !defined(TEMP_FAILURE_RETRY) 464 #if !defined(TEMP_FAILURE_RETRY)
470 // TEMP_FAILURE_RETRY is defined in unistd.h on some platforms. The 465 // TEMP_FAILURE_RETRY is defined in unistd.h on some platforms. The
471 // definition below is copied from Linux and adapted to avoid lint 466 // definition below is copied from Linux and adapted to avoid lint
472 // errors (type long int changed to int64_t and do/while split on 467 // errors (type long int changed to intptr_t and do/while split on
473 // separate lines with body in {}s). 468 // separate lines with body in {}s).
474 #define TEMP_FAILURE_RETRY(expression) \ 469 #define TEMP_FAILURE_RETRY(expression) \
475 ({ int64_t __result; \ 470 ({ intptr_t __result; \
476 do { \ 471 do { \
477 __result = static_cast<int64_t>(expression); \ 472 __result = static_cast<intptr_t>(expression); \
siva 2014/01/16 00:15:59 We probably should not have a static cast here to
Ivan Posva 2014/01/16 05:05:41 You are absolutely right. I did review the current
478 } while (__result == -1L && errno == EINTR); \ 473 } while (__result == -1L && errno == EINTR); \
479 __result; }) 474 __result; })
480 #endif // !defined(TEMP_FAILURE_RETRY) 475 #endif // !defined(TEMP_FAILURE_RETRY)
481 476
482 // This is a version of TEMP_FAILURE_RETRY which does not use the value 477 // This is a version of TEMP_FAILURE_RETRY which does not use the value
483 // returned from the expression. 478 // returned from the expression.
484 #define VOID_TEMP_FAILURE_RETRY(expression) \ 479 #define VOID_TEMP_FAILURE_RETRY(expression) \
485 (static_cast<void>(TEMP_FAILURE_RETRY(expression))) 480 (static_cast<void>(TEMP_FAILURE_RETRY(expression)))
486 481
487 #endif // !defined(TARGET_OS_WINDOWS) 482 #endif // !defined(TARGET_OS_WINDOWS)
488 483
489 #if defined(TARGET_OS_LINUX) || defined(TARGET_OS_MACOS) 484 #if defined(TARGET_OS_LINUX) || defined(TARGET_OS_MACOS)
490 // Tell the compiler to do printf format string checking if the 485 // Tell the compiler to do printf format string checking if the
491 // compiler supports it; see the 'format' attribute in 486 // compiler supports it; see the 'format' attribute in
492 // <http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/Function-Attributes.html>. 487 // <http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/Function-Attributes.html>.
493 // 488 //
494 // N.B.: As the GCC manual states, "[s]ince non-static C++ methods 489 // N.B.: As the GCC manual states, "[s]ince non-static C++ methods
495 // have an implicit 'this' argument, the arguments of such methods 490 // have an implicit 'this' argument, the arguments of such methods
496 // should be counted from two, not one." 491 // should be counted from two, not one."
497 #define PRINTF_ATTRIBUTE(string_index, first_to_check) \ 492 #define PRINTF_ATTRIBUTE(string_index, first_to_check) \
498 __attribute__((__format__(__printf__, string_index, first_to_check))) 493 __attribute__((__format__(__printf__, string_index, first_to_check)))
499 #else 494 #else
500 #define PRINTF_ATTRIBUTE(string_index, first_to_check) 495 #define PRINTF_ATTRIBUTE(string_index, first_to_check)
501 #endif 496 #endif
502 497
503 #endif // PLATFORM_GLOBALS_H_ 498 #endif // PLATFORM_GLOBALS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698