blob: d0b9222b6a66437dabfbd10998228bf73648828f [file] [log] [blame]
Anna Zaks719b4292012-05-18 22:47:43 +00001// RUN: %clang_cc1 -analyze -analyzer-checker=core -std=c++11 -verify %s
Andy Gibbs8e8fb3b2012-10-19 12:44:48 +00002// expected-no-diagnostics
Anna Zaks719b4292012-05-18 22:47:43 +00003
4// radar://11485149, PR12871
5class PlotPoint {
6 bool valid;
7};
8
9PlotPoint limitedFit () {
10 PlotPoint fit0;
11 fit0 = limitedFit ();
12 return fit0;
13}
Anna Zaks671e3bc2012-05-19 00:22:11 +000014
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}
Anna Zaks13dd47a2012-05-21 22:07:00 +000035
Anna Zaks98553e82012-05-24 17:31:54 +000036// PR12873 radar://11499139
Anna Zaks13dd47a2012-05-21 22:07:00 +000037void testFloatInitializer() {
38 const float ysize={0.015}, xsize={0.01};
39}
Anna Zaks17eb65f2012-05-24 17:31:57 +000040
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}
Anna Zakse41458c2012-05-25 16:02:16 +000061
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}