blob: a2b70db2f8706074a387befc41338cf79e913c13 [file] [log] [blame]
Anna Zaks457ace72012-05-18 22:47:43 +00001// RUN: %clang_cc1 -analyze -analyzer-checker=core -std=c++11 -verify %s
Andy Gibbsc6e68da2012-10-19 12:44:48 +00002// expected-no-diagnostics
Anna Zaks457ace72012-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 Zaks209bd252012-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 Zaksfc1d4bd2012-05-21 22:07:00 +000035
Anna Zakscb4c4832012-05-24 17:31:54 +000036// PR12873 radar://11499139
Anna Zaksfc1d4bd2012-05-21 22:07:00 +000037void testFloatInitializer() {
38 const float ysize={0.015}, xsize={0.01};
39}
Anna Zaksd0867102012-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 Zaks6a658192012-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}
Anna Zaksd60a41d2013-06-18 23:16:20 +000068
69// radar://14164698 Don't crash on "assuming" a ComoundVal.
70class JSONWireProtocolInputStream {
71public:
72 virtual ~JSONWireProtocolInputStream();
73};
74class JSONWireProtocolReader {
75public:
76 JSONWireProtocolReader(JSONWireProtocolInputStream& istream)
77 : _istream{istream} {} // On evaluating a bind here,
78 // the dereference checker issues an assume on a CompoundVal.
79~JSONWireProtocolReader();
80private:
81JSONWireProtocolInputStream& _istream;
82};
83class SocketWireProtocolStream : public JSONWireProtocolInputStream {
84};
85void test() {
86 SocketWireProtocolStream stream{};
87 JSONWireProtocolReader reader{stream};
88}