aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2019-01-05 00:57:30 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2019-01-04 17:57:30 -0700
commit29d2485270f422a4b89bfa79e448843509cd0568 (patch)
treef1e8cf0a03dff36fd00f2c23d9cebce2ecbc3871 /libgcc
parentf6be1179bb66624403d0f55620d67344d9d98c51 (diff)
downloadgcc-29d2485270f422a4b89bfa79e448843509cd0568.zip
gcc-29d2485270f422a4b89bfa79e448843509cd0568.tar.gz
gcc-29d2485270f422a4b89bfa79e448843509cd0568.tar.bz2
PR c/88546 - Copy attribute unusable for weakrefs
gcc/c-family/ChangeLog: PR c/88546 * c-attribs.c (handle_copy_attribute): Avoid copying attribute leaf. Handle C++ empty throw specification and C11 _Noreturn. (has_attribute): Also handle C11 _Noreturn. gcc/ChangeLog: PR c/88546 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute leaf. gcc/testsuite/ChangeLog: PR c/88546 * g++.dg/ext/attr-copy.C: New test. * gcc.dg/attr-copy-4.c: Disable macro expansion tracking. * gcc.dg/attr-copy-6.c: New test. * gcc.dg/attr-copy-7.c: New test. From-SVN: r267591
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/gthr-posix.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/libgcc/gthr-posix.h b/libgcc/gthr-posix.h
index b1a497d..88cbc23 100644
--- a/libgcc/gthr-posix.h
+++ b/libgcc/gthr-posix.h
@@ -87,7 +87,8 @@ typedef struct timespec __gthread_time_t;
# define __gthrw_pragma(pragma)
# endif
# define __gthrw2(name,name2,type) \
- static __typeof(type) name __attribute__ ((__weakref__(#name2))); \
+ static __typeof(type) name \
+ __attribute__ ((__weakref__(#name2), __copy__ (type))); \
__gthrw_pragma(weak type)
# define __gthrw_(name) __gthrw_ ## name
#else