1 /*
2 Copyright Rene Rivera 2008-2015
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at
5 http://www.boost.org/LICENSE_1_0.txt)
6 */
7 
8 #ifndef BOOST_PREDEF_COMPILER_SUNPRO_H
9 #define BOOST_PREDEF_COMPILER_SUNPRO_H
10 
11 #include <boost/predef/version_number.h>
12 #include <boost/predef/make.h>
13 
14 /* tag::reference[]
15 = `BOOST_COMP_SUNPRO`
16 
17 http://en.wikipedia.org/wiki/Oracle_Solaris_Studio[Oracle Solaris Studio] compiler.
18 Version number available as major, minor, and patch.
19 
20 [options="header"]
21 |===
22 | {predef_symbol} | {predef_version}
23 
24 | `+__SUNPRO_CC+` | {predef_detection}
25 | `+__SUNPRO_C+` | {predef_detection}
26 
27 | `+__SUNPRO_CC+` | V.R.P
28 | `+__SUNPRO_C+` | V.R.P
29 | `+__SUNPRO_CC+` | VV.RR.P
30 | `+__SUNPRO_C+` | VV.RR.P
31 |===
32 */ // end::reference[]
33 
34 #define BOOST_COMP_SUNPRO BOOST_VERSION_NUMBER_NOT_AVAILABLE
35 
36 #if defined(__SUNPRO_CC) || defined(__SUNPRO_C)
37 #   if !defined(BOOST_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_CC)
38 #       if (__SUNPRO_CC < 0x5100)
39 #           define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VRP(__SUNPRO_CC)
40 #       else
41 #           define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VVRRP(__SUNPRO_CC)
42 #       endif
43 #   endif
44 #   if !defined(BOOST_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_C)
45 #       if (__SUNPRO_C < 0x5100)
46 #           define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VRP(__SUNPRO_C)
47 #       else
48 #           define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VVRRP(__SUNPRO_C)
49 #       endif
50 #   endif
51 #   if !defined(BOOST_COMP_SUNPRO_DETECTION)
52 #       define BOOST_COMP_SUNPRO_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
53 #   endif
54 #endif
55 
56 #ifdef BOOST_COMP_SUNPRO_DETECTION
57 #   if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED)
58 #       define BOOST_COMP_SUNPRO_EMULATED BOOST_COMP_SUNPRO_DETECTION
59 #   else
60 #       undef BOOST_COMP_SUNPRO
61 #       define BOOST_COMP_SUNPRO BOOST_COMP_SUNPRO_DETECTION
62 #   endif
63 #   define BOOST_COMP_SUNPRO_AVAILABLE
64 #   include <boost/predef/detail/comp_detected.h>
65 #endif
66 
67 #define BOOST_COMP_SUNPRO_NAME "Oracle Solaris Studio"
68 
69 #endif
70 
71 #include <boost/predef/detail/test.h>
72 BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SUNPRO,BOOST_COMP_SUNPRO_NAME)
73 
74 #ifdef BOOST_COMP_SUNPRO_EMULATED
75 #include <boost/predef/detail/test.h>
76 BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SUNPRO_EMULATED,BOOST_COMP_SUNPRO_NAME)
77 #endif
78