From a8243a3f12a15b8cea7a07e3d89e6880d922d570 Mon Sep 17 00:00:00 2001 From: Sylvain Pion Date: Sun, 20 Jan 2008 21:39:25 +0000 Subject: [PATCH] Introduce a new macro CGAL_SUNPRO_INITIALIZE to workaround a SunPRO warning properly. (can't write a test program for a warning) --- Installation/include/CGAL/config.h | 8 +++++++ .../include/CGAL/Min_quadrilateral_traits_2.h | 24 +++++-------------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/Installation/include/CGAL/config.h b/Installation/include/CGAL/config.h index 47ae34563b4..a64059bf684 100644 --- a/Installation/include/CGAL/config.h +++ b/Installation/include/CGAL/config.h @@ -136,6 +136,14 @@ #endif +#ifdef __SUNPRO_CC +// SunPRO 5.9 emits warnings "The variable tag has not yet been assigned a value" +// even for empty "tag" variables. No way to write a config/testfile for this. +# define CGAL_SUNPRO_INITIALIZE(C) C +#else +# define CGAL_SUNPRO_INITIALIZE(C) +#endif + //-------------------------------------------------------------------// // When the global min and max are no longer defined (as macros) diff --git a/Min_quadrilateral_2/include/CGAL/Min_quadrilateral_traits_2.h b/Min_quadrilateral_2/include/CGAL/Min_quadrilateral_traits_2.h index ae91d6a5485..de5ae9aba36 100644 --- a/Min_quadrilateral_2/include/CGAL/Min_quadrilateral_traits_2.h +++ b/Min_quadrilateral_2/include/CGAL/Min_quadrilateral_traits_2.h @@ -158,12 +158,8 @@ public: bool operator()(const Rectangle_2& p, const Rectangle_2& q) const { - typename Kernel::Rep_tag tag; - #if defined(__sun) && defined(__SUNPRO_CC) - // to avoid a warning "tag has not yet been assigned a value" - typedef typename Kernel::Rep_tag Rep_tag; - tag = Rep_tag(); - #endif // SUNPRO + typedef typename Kernel::Rep_tag Rep_tag; + Rep_tag tag CGAL_SUNPRO_INITIALIZE(= Rep_tag()); return area_numerator(p, tag) * area_denominator(q, tag) < area_denominator(p, tag) * area_numerator(q, tag); } @@ -207,12 +203,8 @@ public: bool operator()(const Parallelogram_2& p, const Parallelogram_2& q) const { - typename Kernel::Rep_tag tag; - #if defined(__sun) && defined(__SUNPRO_CC) - // to avoid a warning "tag has not yet been assigned a value" - typedef typename Kernel::Rep_tag Rep_tag; - tag = Rep_tag(); - #endif // SUNPRO + typedef typename Kernel::Rep_tag Rep_tag; + Rep_tag tag CGAL_SUNPRO_INITIALIZE(= Rep_tag()); return area_numerator(p, tag) * area_denominator(q, tag) < area_denominator(p, tag) * area_numerator(q, tag); } @@ -251,12 +243,8 @@ public: bool operator()(const Strip_2& p, const Strip_2& q) const { - typename Kernel::Rep_tag tag; - #if defined(__sun) && defined(__SUNPRO_CC) - // to avoid a warning "tag has not yet been assigned a value" - typedef typename Kernel::Rep_tag Rep_tag; - tag = Rep_tag(); - #endif // SUNPRO + typedef typename Kernel::Rep_tag Rep_tag; + Rep_tag tag CGAL_SUNPRO_INITIALIZE(= Rep_tag()); return width_numerator(p, tag) * width_denominator(q, tag) < width_denominator(p, tag) * width_numerator(q, tag); }