1 // RUN: %clang_cc1 -std=c++1z %s -emit-llvm -o - | FileCheck %s --implicit-check-not=should_not_be_used 2 3 void should_be_used_1(); 4 void should_be_used_2(); 5 void should_be_used_3(); 6 void should_not_be_used(); 7 8 struct A { operator boolA9 constexpr explicit operator bool() const { 10 return true; 11 } 12 }; 13 f()14void f() { 15 if constexpr (false) 16 should_not_be_used(); 17 else 18 should_be_used_1(); 19 20 if constexpr (true || ({ label: false; })) 21 should_be_used_2(); 22 else { 23 goto foo; 24 foo: should_not_be_used(); 25 } 26 if constexpr (A()) 27 should_be_used_3(); 28 else 29 should_not_be_used(); 30 } 31 32 // CHECK: should_be_used_1 33 // CHECK: should_be_used_2 34 // CHECK: should_be_used_3 35