<div dir="ltr"><div>Hi,</div><div><br></div><div>I'm looking for advice on implementing diagnostics required by OpenCL v1.2 s6.12.14:</div><br>"Image memory objects that are being read by a kernel should be declared with the __read_only qualifier. write_image calls to image memory objects declared with the __read_only qualifier will generate a compilation error."<div><br></div><div>My idea was to add image access qualifiers to the mangling and because built-in functions like write_image are mangled compiler will throw an error on passing an image with wrong access qualifier as it will not be able to find matching write_image built-in function.</div><div><br></div><div>Unfortunately it turned out that top level qualifiers are discarded by mangler.</div><div>Is any other better way to implement such diagnostics?</div><div><br></div><div>The main problem with it is that operations on OpenCL built-in types like images are defined as built-in function calls, which are typically defined by OpenCL run-time and not by Clang. Clang has no pre-defined knowledge about them.</div><div><br></div><div>I filed a ticket on clang <a href="https://llvm.org/bugs/show_bug.cgi?id=24937" target="_blank">#24937</a> to track similar problem, but it didn't get any attention so far.</div><div><br></div><div>Thanks,</div><div>Alexey</div></div>