public inbox for newlib-cvs@sourceware.org
help / color / mirror / Atom feed
* [newlib-cygwin] Revert "headers: avoid bareword attributes" for clang
@ 2017-08-25 14:25 Eric Blake
0 siblings, 0 replies; only message in thread
From: Eric Blake @ 2017-08-25 14:25 UTC (permalink / raw)
To: newlib-cvs
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=a4961ccd3f0e3513bb32a0e135348ad303e7599d
commit a4961ccd3f0e3513bb32a0e135348ad303e7599d
Author: Eric Blake <eblake@redhat.com>
Date: Fri Aug 25 09:16:23 2017 -0500
Revert "headers: avoid bareword attributes" for clang
This reverts most of commit 979d467ff6e39ee5c52cf1aac7a6c9c63058141c.
We cannot avoid some bareword attributes until clang is fixed to
properly support __-decorated attributes; see this bug:
https://bugs.llvm.org/show_bug.cgi?id=34319
The macros in question expand to the empty string under gcc, so
only compilation under clang is affected, and since clang has the
bug, the obvious solution is to roll back the changes, and document
the issue.
Signed-off-by: Eric Blake <eblake@redhat.com>
Diff:
---
newlib/libc/include/sys/cdefs.h | 30 ++++++++++++++++--------------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/newlib/libc/include/sys/cdefs.h b/newlib/libc/include/sys/cdefs.h
index 9e58ee9..8ce14b6 100644
--- a/newlib/libc/include/sys/cdefs.h
+++ b/newlib/libc/include/sys/cdefs.h
@@ -681,42 +681,44 @@
#endif
/* Structure implements a lock. */
-#define __lockable __lock_annotate(__lockable__)
+/* FIXME: Use __lockable__, etc. to avoid colliding with user namespace macros,
+ * once clang is fixed: https://bugs.llvm.org/show_bug.cgi?id=34319 */
+#define __lockable __lock_annotate(lockable)
/* Function acquires an exclusive or shared lock. */
#define __locks_exclusive(...) \
- __lock_annotate(__exclusive_lock_function__(__VA_ARGS__))
+ __lock_annotate(exclusive_lock_function(__VA_ARGS__))
#define __locks_shared(...) \
- __lock_annotate(__shared_lock_function__(__VA_ARGS__))
+ __lock_annotate(shared_lock_function(__VA_ARGS__))
/* Function attempts to acquire an exclusive or shared lock. */
#define __trylocks_exclusive(...) \
- __lock_annotate(__exclusive_trylock_function__(__VA_ARGS__))
+ __lock_annotate(exclusive_trylock_function(__VA_ARGS__))
#define __trylocks_shared(...) \
- __lock_annotate(__shared_trylock_function__(__VA_ARGS__))
+ __lock_annotate(shared_trylock_function(__VA_ARGS__))
/* Function releases a lock. */
-#define __unlocks(...) __lock_annotate(__unlock_function__(__VA_ARGS__))
+#define __unlocks(...) __lock_annotate(unlock_function(__VA_ARGS__))
/* Function asserts that an exclusive or shared lock is held. */
#define __asserts_exclusive(...) \
- __lock_annotate(__assert_exclusive_lock__(__VA_ARGS__))
+ __lock_annotate(assert_exclusive_lock(__VA_ARGS__))
#define __asserts_shared(...) \
- __lock_annotate(__assert_shared_lock__(__VA_ARGS__))
+ __lock_annotate(assert_shared_lock(__VA_ARGS__))
/* Function requires that an exclusive or shared lock is or is not held. */
#define __requires_exclusive(...) \
- __lock_annotate(__exclusive_locks_required__(__VA_ARGS__))
+ __lock_annotate(exclusive_locks_required(__VA_ARGS__))
#define __requires_shared(...) \
- __lock_annotate(__shared_locks_required__(__VA_ARGS__))
+ __lock_annotate(shared_locks_required(__VA_ARGS__))
#define __requires_unlocked(...) \
- __lock_annotate(__locks_excluded__(__VA_ARGS__))
+ __lock_annotate(locks_excluded(__VA_ARGS__))
/* Function should not be analyzed. */
-#define __no_lock_analysis __lock_annotate(__no_thread_safety_analysis__)
+#define __no_lock_analysis __lock_annotate(no_thread_safety_analysis)
/* Guard variables and structure members by lock. */
-#define __guarded_by(x) __lock_annotate(__guarded_by__(x))
-#define __pt_guarded_by(x) __lock_annotate(__pt_guarded_by__(x))
+#define __guarded_by(x) __lock_annotate(guarded_by(x))
+#define __pt_guarded_by(x) __lock_annotate(pt_guarded_by(x))
#endif /* !_SYS_CDEFS_H_ */
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-08-25 14:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-25 14:25 [newlib-cygwin] Revert "headers: avoid bareword attributes" for clang Eric Blake
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).