1*2b5f68a5SSirraide // RUN: %clang_cc1 -std=c++23 -x c++ %s -verify 2*2b5f68a5SSirraide f(int x,int y)3*2b5f68a5SSirraidevoid f(int x, int y) { 4*2b5f68a5SSirraide [[assume(true)]]; 5*2b5f68a5SSirraide [[assume(1)]]; 6*2b5f68a5SSirraide [[assume(1.0)]]; 7*2b5f68a5SSirraide [[assume(1 + 2 == 3)]]; 8*2b5f68a5SSirraide [[assume(x ? 1 : 2)]]; 9*2b5f68a5SSirraide [[assume(x && y)]]; 10*2b5f68a5SSirraide [[assume(true)]] [[assume(true)]]; 11*2b5f68a5SSirraide 12*2b5f68a5SSirraide [[assume]]; // expected-error {{takes one argument}} 13*2b5f68a5SSirraide [[assume(]]; // expected-error {{expected expression}} 14*2b5f68a5SSirraide [[assume()]]; // expected-error {{expected expression}} 15*2b5f68a5SSirraide [[assume(2]]; // expected-error {{expected ')'}} expected-note {{to match this '('}} 16*2b5f68a5SSirraide [[assume(x = 2)]]; // expected-error {{requires parentheses}} 17*2b5f68a5SSirraide [[assume(2, 3)]]; // expected-error {{requires parentheses}} expected-warning {{has no effect}} 18*2b5f68a5SSirraide } 19