16c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruth// RUN: %clang_cc1 -Wall -Wshift-sign-overflow -ffreestanding -fsyntax-only -verify %s 26c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruth 36c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruth#include <limits.h> 46c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruth 56c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruth#define WORD_BIT (sizeof(int) * CHAR_BIT) 66c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruth 76c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruthtemplate <int N> void f() { 85fa05cb906e9ddd34ef2ae2a872014aeaf4bc04dChandler Carruth (void)(N << 30); // expected-warning {{bits to represent, but 'int' only has}} 95fa05cb906e9ddd34ef2ae2a872014aeaf4bc04dChandler Carruth (void)(30 << N); // expected-warning {{bits to represent, but 'int' only has}} 106c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruth} 116c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruth 126c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruthvoid test() { 136c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruth f<30>(); // expected-note {{instantiation}} 146c3c3f53b32288f0be38e010c96da271f264f2adChandler Carruth} 15