summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers
diff options
context:
space:
mode:
authorJan Vesely <[email protected]>2014-12-05 19:05:30 -0500
committerFrancisco Jerez <[email protected]>2014-12-10 15:48:20 +0200
commit3a18fc60581ad27811b0b4b22fce51da0ae8a008 (patch)
tree5a1b3db2670cede7284d36f0e0a7c5b6291f6956 /src/gallium/state_trackers
parent7f21cf71989ba780639594ebb34d6e7345b08436 (diff)
clover: Use switch when creating kernel arguments.
This way we get a warning if an enum value is not handled. v2: codestyle Signed-off-by: Jan Vesely <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r--src/gallium/state_trackers/clover/core/kernel.cpp44
1 files changed, 19 insertions, 25 deletions
diff --git a/src/gallium/state_trackers/clover/core/kernel.cpp b/src/gallium/state_trackers/clover/core/kernel.cpp
index e07d14d39f7..442762c4773 100644
--- a/src/gallium/state_trackers/clover/core/kernel.cpp
+++ b/src/gallium/state_trackers/clover/core/kernel.cpp
@@ -293,38 +293,32 @@ namespace {
std::unique_ptr<kernel::argument>
kernel::argument::create(const module::argument &marg) {
- if (marg.type == module::argument::scalar)
- return std::unique_ptr<kernel::argument>(
- new scalar_argument(marg.size));
+ switch (marg.type) {
+ case module::argument::scalar:
+ return std::unique_ptr<kernel::argument>(new scalar_argument(marg.size));
- else if (marg.type == module::argument::global)
- return std::unique_ptr<kernel::argument>(
- new global_argument);
+ case module::argument::global:
+ return std::unique_ptr<kernel::argument>(new global_argument);
- else if (marg.type == module::argument::local)
- return std::unique_ptr<kernel::argument>(
- new local_argument);
+ case module::argument::local:
+ return std::unique_ptr<kernel::argument>(new local_argument);
- else if (marg.type == module::argument::constant)
- return std::unique_ptr<kernel::argument>(
- new constant_argument);
+ case module::argument::constant:
+ return std::unique_ptr<kernel::argument>(new constant_argument);
- else if (marg.type == module::argument::image2d_rd ||
- marg.type == module::argument::image3d_rd)
- return std::unique_ptr<kernel::argument>(
- new image_rd_argument);
+ case module::argument::image2d_rd:
+ case module::argument::image3d_rd:
+ return std::unique_ptr<kernel::argument>(new image_rd_argument);
- else if (marg.type == module::argument::image2d_wr ||
- marg.type == module::argument::image3d_wr)
- return std::unique_ptr<kernel::argument>(
- new image_wr_argument);
+ case module::argument::image2d_wr:
+ case module::argument::image3d_wr:
+ return std::unique_ptr<kernel::argument>(new image_wr_argument);
- else if (marg.type == module::argument::sampler)
- return std::unique_ptr<kernel::argument>(
- new sampler_argument);
+ case module::argument::sampler:
+ return std::unique_ptr<kernel::argument>(new sampler_argument);
- else
- throw error(CL_INVALID_KERNEL_DEFINITION);
+ }
+ throw error(CL_INVALID_KERNEL_DEFINITION);
}
kernel::argument::argument() : _set(false) {