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

Side by Side Diff: src/IceTLS.h

Issue 882743003: Fix pedantic build warnings; (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years, 10 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 | « no previous file | src/IceTargetLoweringX8632.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 //===- subzero/src/IceTLS.h - thread_local workaround -----------*- C++ -*-===// 1 //===- subzero/src/IceTLS.h - thread_local workaround -----------*- C++ -*-===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file defines macros for working around the lack of support for 10 // This file defines macros for working around the lack of support for
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 // pthread_getspecific() and pthread_setspecific(). 64 // pthread_getspecific() and pthread_setspecific().
65 65
66 #include <pthread.h> 66 #include <pthread.h>
67 67
68 #define ICE_TLS_DECLARE_FIELD(Type, FieldName) \ 68 #define ICE_TLS_DECLARE_FIELD(Type, FieldName) \
69 typedef Type FieldName##__type; \ 69 typedef Type FieldName##__type; \
70 static pthread_key_t FieldName##__key; \ 70 static pthread_key_t FieldName##__key; \
71 static int FieldName##__initStatus 71 static int FieldName##__initStatus
72 #define ICE_TLS_DEFINE_FIELD(Type, ClassName, FieldName) \ 72 #define ICE_TLS_DEFINE_FIELD(Type, ClassName, FieldName) \
73 pthread_key_t ClassName::FieldName##__key; \ 73 pthread_key_t ClassName::FieldName##__key; \
74 int ClassName::FieldName##__initStatus = 1; 74 int ClassName::FieldName##__initStatus = 1
75 #define ICE_TLS_INIT_FIELD(FieldName) \ 75 #define ICE_TLS_INIT_FIELD(FieldName) \
76 if (FieldName##__initStatus) { \ 76 if (FieldName##__initStatus) { \
77 FieldName##__initStatus = pthread_key_create(&FieldName##__key, nullptr); \ 77 FieldName##__initStatus = pthread_key_create(&FieldName##__key, nullptr); \
78 if (FieldName##__initStatus) \ 78 if (FieldName##__initStatus) \
79 llvm::report_fatal_error("Failed to create pthread key"); \ 79 llvm::report_fatal_error("Failed to create pthread key"); \
80 } 80 }
81 #define ICE_TLS_GET_FIELD(FieldName) \ 81 #define ICE_TLS_GET_FIELD(FieldName) \
82 (assert(FieldName##__initStatus == 0), \ 82 (assert(FieldName##__initStatus == 0), \
83 static_cast<FieldName##__type>(pthread_getspecific(FieldName##__key))) 83 static_cast<FieldName##__type>(pthread_getspecific(FieldName##__key)))
84 #define ICE_TLS_SET_FIELD(FieldName, Value) \ 84 #define ICE_TLS_SET_FIELD(FieldName, Value) \
85 (assert(FieldName##__initStatus == 0), \ 85 (assert(FieldName##__initStatus == 0), \
86 pthread_setspecific(FieldName##__key, (Value))) 86 pthread_setspecific(FieldName##__key, (Value)))
87 87
88 #else // !ICE_THREAD_LOCAL_HACK 88 #else // !ICE_THREAD_LOCAL_HACK
89 89
90 #define ICE_TLS_DECLARE_FIELD(Type, FieldName) \ 90 #define ICE_TLS_DECLARE_FIELD(Type, FieldName) \
91 static ICE_ATTRIBUTE_TLS Type FieldName 91 static ICE_ATTRIBUTE_TLS Type FieldName
92 #define ICE_TLS_DEFINE_FIELD(Type, ClassName, FieldName) \ 92 #define ICE_TLS_DEFINE_FIELD(Type, ClassName, FieldName) \
93 ICE_ATTRIBUTE_TLS Type ClassName::FieldName = nullptr 93 ICE_ATTRIBUTE_TLS Type ClassName::FieldName = nullptr
94 #define ICE_TLS_INIT_FIELD(FieldName) 94 #define ICE_TLS_INIT_FIELD(FieldName)
95 #define ICE_TLS_GET_FIELD(FieldName) (FieldName) 95 #define ICE_TLS_GET_FIELD(FieldName) (FieldName)
96 #define ICE_TLS_SET_FIELD(FieldName, Value) (FieldName = (Value)) 96 #define ICE_TLS_SET_FIELD(FieldName, Value) (FieldName = (Value))
97 97
98 #endif // !ICE_THREAD_LOCAL_HACK 98 #endif // !ICE_THREAD_LOCAL_HACK
99 99
100 #endif // SUBZERO_SRC_ICETLS_H 100 #endif // SUBZERO_SRC_ICETLS_H
OLDNEW
« no previous file with comments | « no previous file | src/IceTargetLoweringX8632.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698