On Fri, Feb 26, 2016 at 06:18:13PM +0100, Martin Jambor wrote: > > I'm a proponent of enabling as many useful warnings by default, or if not > > by default, then with -Wall. -Whsa is enabled by default, and has thus > > set a precedent of doing that. > > I am not sure I'd go as far as "as many as possible," but in the case > of -Whsa, the warnings get emitted only if HSA offloading is > configured and especially only if the user used OMP and its target > construct. This means that it is relevant only for a rather small > class of users and it's not a "your code looks weird" kind of warning > but a "the compiler is not doing what you clearly asked for" warning. > So that is why we decided to warn unconditionally. > > But as far as I understand, gcc does not give any promises about > warnings, so I believe decisions like a defaultness of a warning can > be revisited at any point in the future, for example if people learn > not to expect some constructs to be offloaded to GPUs. Moreover, the > conventions regarding offloading are still being settled and still > will for quite some time so nobody should really expect such details > to be set in stone.
The thing is, most of the tests in the libgomp.{c,c++,fortran}/ testsuite are (meant to be) valid OpenMP testcases, having them full of dozens of dg-warning lines where every of the 10+ different offloading target warns about something would be a maintainance nightmare. E.g. when adding new OpenMP tests, one would need to configure all the offloaders (individually?), for some you need hw not every committer has, for others there are other issues (e.g., is the required amdkfd going to be submitted for upstream kernel? I might have hard time convincing our kernel maintainers to use that instead of what is in upstream kernel others). So, IMHO if you want to check for warnings, do that as Martin has added a new subdir with only hsa OpenMP tests, if you want test warnings on tests we already have elsewhere, #include them in the other dir, dg-do link instead of run (so that it is not run multiple times), and check for the warnings; you could also use -foffload=hsa in there to make sure you only have to care about hsa warnings, and not NVPTX, or whatever other offloader. Jakub