aaron.ballman added a comment.

In https://reviews.llvm.org/D24669#548984, @vbyakovlcl wrote:

> Clang 3.8 balances vector shift operand erroneous using CheckVectorOperands 
> which converts one of operand to the type of another. In 
> https://reviews.llvm.org/D21678 it was fixed by using checkVectorShift 
> instead. As result clang does not emit error if shift operands have different 
> element sizes (bat gcc does).


Ah, thank you for the explanation!


================
Comment at: llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td:522
@@ -521,2 +521,3 @@
 def GNUZeroVariadicMacroArguments : 
DiagGroup<"gnu-zero-variadic-macro-arguments">;
+def GNUVecElemSize : DiagGroup<"gnu-vec-elem-size">;
 def Fallback : DiagGroup<"fallback">;
----------------
Is this the same warning flag GCC uses?

================
Comment at: llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td:2306
@@ -2304,1 +2305,3 @@
+  "vector operands do not have the same elements sizes (%0 and %1)">,
+  InGroup<GNUVecElemSize>, DefaultIgnore;
 def err_ext_vector_component_exceeds_length : Error<
----------------
Why is this off by default?


Repository:
  rL LLVM

https://reviews.llvm.org/D24669



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to