|
@@ -3244,9 +3244,12 @@ static bool CheckExtensionTraitOperandType(Sema &S, QualType T,
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- // Allow sizeof(void)/alignof(void) as an extension.
|
|
|
+ // Allow sizeof(void)/alignof(void) as an extension, unless in OpenCL where
|
|
|
+ // this is an error (OpenCL v1.1 s6.3.k)
|
|
|
if (T->isVoidType()) {
|
|
|
- S.Diag(Loc, diag::ext_sizeof_alignof_void_type) << TraitKind << ArgRange;
|
|
|
+ unsigned DiagID = S.LangOpts.OpenCL ? diag::err_opencl_sizeof_alignof_type
|
|
|
+ : diag::ext_sizeof_alignof_void_type;
|
|
|
+ S.Diag(Loc, DiagID) << TraitKind << ArgRange;
|
|
|
return false;
|
|
|
}
|
|
|
|