* gcc-interface/utils.c, gcc-interface/decl.c, gcc-interface/gigi.h:
Add support for pragma Thread_Local_Storage
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145730
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-04-08 Tristan Gingold <gingold@adacore.com>
+
+ * gcc-interface/utils.c, gcc-interface/decl.c, gcc-interface/gigi.h:
+ Add support for pragma Thread_Local_Storage
+
2009-04-08 Ed Schonberg <schonberg@adacore.com>
* inline.adb (Back_End_Cannot_Inline): Do not mark a body as inlineable
etype = ATTR_WEAK_EXTERNAL;
break;
+ case Pragma_Thread_Local_Storage:
+ etype = ATTR_THREAD_LOCAL_STORAGE;
+ break;
+
default:
continue;
}
ATTR_LINK_SECTION,
ATTR_LINK_CONSTRUCTOR,
ATTR_LINK_DESTRUCTOR,
+ ATTR_THREAD_LOCAL_STORAGE,
ATTR_WEAK_EXTERNAL
};
DECL_STATIC_DESTRUCTOR (decl) = 1;
TREE_USED (decl) = 1;
break;
+
+ case ATTR_THREAD_LOCAL_STORAGE:
+ if (targetm.have_tls)
+ DECL_TLS_MODEL (decl) = decl_default_tls_model (decl);
+ else
+ post_error ("thread-local storage not supported for this target",
+ attr_list->error_point);
+ break;
}
}
\f