[cfe-commits] [PATCH] OpenCL event type

Dmitri Gribenko gribozavr at gmail.com
Tue Dec 18 15:36:01 PST 2012


On Wed, Dec 19, 2012 at 1:19 AM, Benyei, Guy <guy.benyei at intel.com> wrote:
> The attached patch implements OpenCL event_t as Clang builtin type.
>
> According to the OpenCL spec, this type can’t be initialized, but one may
> use NULL instead of it when calling a function.

+      if (Entity.getKind() != InitializedEntity::EK_Parameter)
+          S.Diag(Kind.getLocation(), diag::err_event_initialization);
+      else if (!CurInit.get()->isNullPointerConstant(S.getASTContext(),
+        Expr::NPC_ValueDependentIsNull))
+          S.Diag(Kind.getLocation(), diag::err_event_argument_not_null)
+            << SourceType;

Indentation is funny here (uses 4 spaces instead of 2, function
arguments not aligned to the previous line).

+  event_t e = 0; // expected-error {{cannot initialize event_t}}

A better wording, maybe: "initialization of event_t variables is not
allowed".  Current wording suggests that there's something to the
initialization that can be fixed.

+  foo(5); // expected-error {{event_t variable or NULL required - got 'int'}}

This does not feel like a Clang error message to me.  A better wording
might be "passing %1 as event_t function parameter is not allowed; use
an event_t variable or NULL" -- but there are certainly better
alternatives.

Dmitri

--
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/




More information about the cfe-commits mailing list