@@ -102,14 +102,13 @@ Non-comprehensive list of changes in this release
102
102
the found gcc installation is older than 4.7.0. Add ``-fno-use-init-array `` to
103
103
get the old behavior (``.ctors ``).
104
104
105
- * Lax vector conversions involving floating-point vectors have been disabled
106
- by default, and can no longer be enabled with ``-flax-vector-conversions ``.
107
- This matches the behavior of these flags in GCC, but code relying on implicit
108
- vector bitcasts between integer and floating-point types that used to compile
109
- with older versions of Clang is no longer accepted by default in Clang 10.
110
- The old behavior can be restored with ``-flax-vector-conversions=all ``.
111
- In a future release of Clang, we intend to change the default to
112
- ``-fno-lax-vector-conversions ``.
105
+ * The behavior of the flag ``-flax-vector-conversions `` has been modified to
106
+ more closely match GCC, as described below. In Clang 10 onwards, command lines
107
+ specifying this flag do not permit implicit vector bitcasts between integer
108
+ vectors and floating-point vectors. Such conversions are still permitted by
109
+ default, however, and the default can be explicitly requested with the
110
+ Clang-specific flag ``-flax-vector-conversions=all ``. In a future release of
111
+ Clang, we intend to change the default to ``-fno-lax-vector-conversions ``.
113
112
114
113
New Compiler Flags
115
114
------------------
@@ -142,19 +141,21 @@ Modified Compiler Flags
142
141
to the ``-march `` flag, overriding the target provided by ``-triple ``.
143
142
144
143
- ``-flax-vector-conversions `` has been split into three different levels of
145
- laxness:
144
+ laxness, and has been updated to match the GCC semantics :
146
145
147
- - ``-flax-vector-conversions=all ``: This is Clang's historical default, and
146
+ - ``-flax-vector-conversions=all ``: This is Clang's current default, and
148
147
permits implicit vector conversions (performed as bitcasts) between any
149
148
two vector types of the same overall bit-width.
149
+ Former synonym: ``-flax-vector-conversions `` (Clang <= 9).
150
150
151
- - ``-flax-vector-conversions=integer ``: This is Clang's current default,
152
- and permits implicit vector conversions (performed as bitcasts) between
153
- any two integer vector types of the same overall bit-width.
154
- Synonym: ``-flax-vector-conversions ``.
151
+ - ``-flax-vector-conversions=integer ``: This permits implicit vector
152
+ conversions (performed as bitcasts) between any two integer vector types of
153
+ the same overall bit-width.
154
+ Synonym: ``-flax-vector-conversions `` (Clang >= 10) .
155
155
156
156
- ``-flax-vector-conversions=none ``: Do not perform any implicit bitcasts
157
- between vector types. Synonym: ``-fno-lax-vector-conversions ``.
157
+ between vector types.
158
+ Synonym: ``-fno-lax-vector-conversions ``.
158
159
159
160
New Pragmas in Clang
160
161
--------------------
0 commit comments