1  // P2295R6 - Support for UTF-8 as a portable source file encoding
       2  // This test intentionally contains various byte sequences which are not valid UTF-8
       3  // { dg-do preprocess }
       4  // { dg-options "-finput-charset=UTF-8 -Winvalid-utf8" }
       5  
       6  #define I(x)
       7  I(߿ࠀ𐀀)	// { dg-bogus "invalid UTF-8 character" }
       8                                  // { dg-error "is not valid in an identifier" "" { target c++ } .-1 }
       9  I(�)				// { dg-warning "invalid UTF-8 character <80>" }
      10  I(�)				// { dg-warning "invalid UTF-8 character <bf>" }
      11  I(�)				// { dg-warning "invalid UTF-8 character <c0>" }
      12  I(�)				// { dg-warning "invalid UTF-8 character <c1>" }
      13  I(�)				// { dg-warning "invalid UTF-8 character <f5>" }
      14  I(�)				// { dg-warning "invalid UTF-8 character <ff>" }
      15  I(�)				// { dg-warning "invalid UTF-8 character <c2>" }
      16  I(�)				// { dg-warning "invalid UTF-8 character <e0>" }
      17  I(���)				// { dg-warning "invalid UTF-8 character <e0><80><bf>" }
      18  I(���)				// { dg-warning "invalid UTF-8 character <e0><9f><80>" }
      19  I(�)				// { dg-warning "invalid UTF-8 character <e0><bf>" }
      20  I(�)				// { dg-warning "invalid UTF-8 character <ec><80>" }
      21  I(���)				// { dg-warning "invalid UTF-8 character <ed><a0><80>" }
      22  I(����)				// { dg-warning "invalid UTF-8 character <f0><80><80><80>" }
      23  I(����)				// { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" }
      24  I(����)				// { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c } }
      25                                  // { dg-error "is not valid in an identifier" "" { target c++ } .-1 }
      26  I(������)			// { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c } }
      27                                  // { dg-error "is not valid in an identifier" "" { target c++ } .-1 }