Results 1 to 2 of 2

Thread: Clarification on event_t usage in OpenCL specification

  1. #1
    Join Date
    Feb 2014

    Clarification on event_t usage in OpenCL specification

    Could I have clarification on the use of event_t in OpenCL. I've seen uses similar to doSomething((event_t)0), which tip Clang in OpenCL mode rejects. It will accept if you pass '0' to a function that takes an event_t type, like doSomething(0), but not if you try and explicitly cast the value.

    The specification does not mention that you can actually cast between '0' and event_t types, it only says that the builtin functions that take event_t's must accept '0' as the event_t value. The specification sections Implicit Conversions and Explicit Casts it doesn't mention event_t - so can I safely assume that the behaviour of explicitly casting 0 to event_t (by doing (event_t)0) should be banned?

  2. #2
    Join Date
    Nov 2013
    Do note that the conformance tests for OpenCL 1.2 and 2.0 both use an explicit cast "(event_t)0". This is in basic/test_async_copy.cpp and basic/test_async_strided_copy.cpp. If one assumes that the tests themselves represent what is allowed in the spec, then an explicit cast of zero is allowed.

    But this still does not clear the issue over non-zero values. Are those allowed? Clearly, the meaning of a non-zero value is entirely implementation-defined, and the use is non-portable. But is it also illegal, if we go by the letter of the spec?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
Proudly hosted by Digital Ocean