xref: /llvm-project/clang/test/Sema/integer-overflow.cpp (revision 9332ddfba69c38f9ceef4175b042fba0bb8e67bb)
1*9332ddfbSShafik Yaghmour // RUN: %clang_cc1 %s -Wno-unused-value -verify -fsyntax-only
2*9332ddfbSShafik Yaghmour 
3*9332ddfbSShafik Yaghmour namespace GH58944 {
4*9332ddfbSShafik Yaghmour struct A {
5*9332ddfbSShafik Yaghmour   A(unsigned long) ;
6*9332ddfbSShafik Yaghmour };
7*9332ddfbSShafik Yaghmour 
8*9332ddfbSShafik Yaghmour A a(1024 * 1024 * 1024 * 1024 * 1024ull); // expected-warning {{overflow in expression; result is 0 with type 'int'}}
9*9332ddfbSShafik Yaghmour 
f()10*9332ddfbSShafik Yaghmour void f() {
11*9332ddfbSShafik Yaghmour   new int[1024 * 1024 * 1024 * 1024 * 1024ull]; // expected-warning {{overflow in expression; result is 0 with type 'int'}}
12*9332ddfbSShafik Yaghmour 
13*9332ddfbSShafik Yaghmour   int arr[]{1,2,3};
14*9332ddfbSShafik Yaghmour   arr[1024 * 1024 * 1024 * 1024 * 1024ull]; // expected-warning {{overflow in expression; result is 0 with type 'int'}}
15*9332ddfbSShafik Yaghmour 
16*9332ddfbSShafik Yaghmour   (int){1024 * 1024 * 1024 * 1024 * 1024}; // expected-warning {{overflow in expression; result is 0 with type 'int'}}
17*9332ddfbSShafik Yaghmour }
18*9332ddfbSShafik Yaghmour }
19