cxx11-crashes.cpp revision 8e8fb3be5bd78f0564444eca02b404566a5f3b5d
1// RUN: %clang_cc1 -analyze -analyzer-checker=core -std=c++11 -verify %s
2// expected-no-diagnostics
3
4// radar://11485149, PR12871
5class PlotPoint {
6  bool valid;
7};
8
9PlotPoint limitedFit () {
10  PlotPoint fit0;
11  fit0 = limitedFit ();
12  return fit0;
13}
14
15// radar://11487541, NamespaceAlias
16namespace boost {namespace filesystem3 {
17class path {
18public:
19 path(){}
20};
21
22}}
23namespace boost
24{
25  namespace filesystem
26  {
27    using filesystem3::path;
28  }
29}
30
31void radar11487541() {
32  namespace fs = boost::filesystem;
33  fs::path p;
34}
35
36// PR12873 radar://11499139
37void testFloatInitializer() {
38  const float ysize={0.015}, xsize={0.01};
39}
40
41
42// PR12874, radar://11487525
43template<class T> struct addr_impl_ref {
44  T & v_;
45  inline addr_impl_ref( T & v ): v_( v ) {
46  }
47  inline operator T& () const {return v_;}
48};
49template<class T> struct addressof_impl {
50  static inline T * f( T & v, long )     {
51    return reinterpret_cast<T*>(&const_cast<char&>(reinterpret_cast<const volatile char &>(v)));
52  }
53};
54template<class T> T * addressof( T & v ) {
55  return addressof_impl<T>::f( addr_impl_ref<T>( v ), 0 );
56}
57void testRadar11487525_1(){
58  bool s[25];
59  addressof(s);
60}
61
62// radar://11487525 Don't crash on CK_LValueBitCast.
63bool begin(double *it) {
64  typedef bool type[25];
65  bool *a = reinterpret_cast<type &>(*( reinterpret_cast<char *>( it )));
66  return *a;
67}
68