This way we get a warning when an enum value is not handled Signed-off-by: Jan Vesely <jan.ves...@rutgers.edu> --- src/gallium/state_trackers/clover/core/kernel.cpp | 45 ++++++++++------------- 1 file changed, 20 insertions(+), 25 deletions(-)
diff --git a/src/gallium/state_trackers/clover/core/kernel.cpp b/src/gallium/state_trackers/clover/core/kernel.cpp index e07d14d..9ddc244 100644 --- a/src/gallium/state_trackers/clover/core/kernel.cpp +++ b/src/gallium/state_trackers/clover/core/kernel.cpp @@ -293,38 +293,33 @@ 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) { -- 1.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev