[PATCH] D36712: Emit section information for extern variables
Elizabeth Andrews via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 22 07:30:29 PDT 2017
eandrews updated this revision to Diff 112172.
eandrews added a comment.
Updated the documentation to explicitly state that section information for a variable can be explicit or inferred.
@@ -579,7 +579,9 @@
case they don't have an initializer.
Either global variable definitions or declarations may have an explicit section
-to be placed in and may have an optional explicit alignment specified.
+to be placed in and may have an optional explicit alignment specified. If there
+is a mismatch between the explicit or inferred section information for the
+variable declaration and its definition the resulting behavior is undefined.
A variable may be defined as a global ``constant``, which indicates that
the contents of the variable will **never** be modified (enabling better
@@ -622,6 +624,12 @@
Additionally, the global can placed in a comdat if the target has the necessary
+External declarations may have an explicit section specified. Section
+information is retained in LLVM IR for targets that make use of this
+information. Attaching section information to an external declaration is an
+assertion that its definition is located in the specified section. If the
+definition is located in a different section, the behavior is undefined.
By default, global initializers are optimized by assuming that global
variables defined within the module are not modified from their
initial values before the start of the global initializer. This is
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1429 bytes
Desc: not available
More information about the cfe-commits