1 // RUN: %clang_cc1 -triple=x86_64-linux-gnu -emit-llvm -o - %s 2 3 // Don't crash if the argument to __builtin_constant_p isn't scalar. 4 template <typename T> 5 constexpr bool is_constant(const T v) { 6 return __builtin_constant_p(v); 7 } 8 9 template <typename T> 10 class numeric { 11 public: 12 using type = T; 13 14 template <typename S> 15 constexpr numeric(S value) 16 : value_(static_cast<T>(value)) {} 17 18 private: 19 const T value_; 20 }; 21 22 bool bcp() { 23 return is_constant(numeric<int>(1)); 24 } 25