From c61dab9348e13b10fa5f2128421c2fbc5380e2b0 Mon Sep 17 00:00:00 2001
From: Daniel Arndt <arndtd@ornl.gov>
Date: Fri, 5 Jul 2019 15:12:49 -0400
Subject: [PATCH] Avoid warnings in device code

---
 include/deal.II/base/point.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/include/deal.II/base/point.h b/include/deal.II/base/point.h
index 93b14f0bb0..3afb0fa319 100644
--- a/include/deal.II/base/point.h
+++ b/include/deal.II/base/point.h
@@ -353,12 +353,14 @@ template <int dim, typename Number>
 inline DEAL_II_CUDA_HOST_DEV
 Point<dim, Number>::Point(const Number x)
 {
+#  ifndef __CUDA_ARCH__
   Assert(dim == 1,
          ExcMessage(
            "You can only initialize Point<1> objects using the constructor "
            "that takes only one argument. Point<dim> objects with dim!=1 "
            "require initialization with the constructor that takes 'dim' "
            "arguments."));
+#  endif
 
   // we can only get here if we pass the assertion. use the switch anyway so
   // as to avoid compiler warnings about uninitialized elements or writing
@@ -379,12 +381,15 @@ template <int dim, typename Number>
 inline DEAL_II_CUDA_HOST_DEV
 Point<dim, Number>::Point(const Number x, const Number y)
 {
+#  ifndef __CUDA_ARCH__
   Assert(dim == 2,
          ExcMessage(
            "You can only initialize Point<2> objects using the constructor "
            "that takes two arguments. Point<dim> objects with dim!=2 "
            "require initialization with the constructor that takes 'dim' "
            "arguments."));
+#  endif
+
   // we can only get here if we pass the assertion. use the indirection anyway
   // so as to avoid compiler warnings about uninitialized elements or writing
   // beyond the end of the 'values' array
@@ -399,12 +404,14 @@ template <int dim, typename Number>
 inline DEAL_II_CUDA_HOST_DEV
 Point<dim, Number>::Point(const Number x, const Number y, const Number z)
 {
+#  ifndef __CUDA_ARCH__
   Assert(dim == 3,
          ExcMessage(
            "You can only initialize Point<3> objects using the constructor "
            "that takes three arguments. Point<dim> objects with dim!=3 "
            "require initialization with the constructor that takes 'dim' "
            "arguments."));
+#  endif
 
   // we can only get here if we pass the assertion. use the indirection anyway
   // so as to avoid compiler warnings about uninitialized elements or writing
@@ -454,7 +461,9 @@ template <int dim, typename Number>
 inline DEAL_II_CUDA_HOST_DEV Number
 Point<dim, Number>::operator()(const unsigned int index) const
 {
+#  ifndef __CUDA_ARCH__
   AssertIndexRange(index, dim);
+#  endif
   return this->values[index];
 }
 
@@ -464,7 +473,9 @@ template <int dim, typename Number>
 inline DEAL_II_CUDA_HOST_DEV Number &
 Point<dim, Number>::operator()(const unsigned int index)
 {
+#  ifndef __CUDA_ARCH__
   AssertIndexRange(index, dim);
+#  endif
   return this->values[index];
 }
 
-- 
2.39.5