@@ -3299,20 +3299,97 @@ static void preprocess_files()
32993299 }
33003300}
33013301
3302- static void safe_api ()
3302+ static void tokenlist_api ()
33033303{
3304- // this test is to make sure the safe APIs are compiling
3305- #if defined(__cpp_lib_string_view) || defined(__cpp_lib_span)
33063304 std::vector<std::string> filenames;
3307- # if defined(__cpp_lib_string_view)
3305+ # if !defined(__cpp_lib_string_view) && !defined(__cpp_lib_span)
3306+ // sized array + size
3307+ {
3308+ char input[] = " code" ; // NOLINT(misc-const-correctness)
3309+ simplecpp::TokenList (input,sizeof (input),filenames," " );
3310+ }
3311+ {
3312+ const char input[] = " code" ;
3313+ simplecpp::TokenList (input,sizeof (input),filenames," " );
3314+ }
3315+ {
3316+ unsigned char input[] = " code" ; // NOLINT(misc-const-correctness)
3317+ simplecpp::TokenList (input,sizeof (input),filenames," " );
3318+ }
3319+ {
3320+ const unsigned char input[] = " code" ;
3321+ simplecpp::TokenList (input,sizeof (input),filenames," " );
3322+ }
3323+ #endif // !defined(__cpp_lib_string_view) && !defined(__cpp_lib_span)
3324+ // pointer via View
3325+ {
3326+ const char * const input = " code" ;
3327+ simplecpp::TokenList ({input},filenames," " );
3328+ }
3329+ // sized array via View
3330+ {
3331+ char input[] = " code" ; // NOLINT(misc-const-correctness)
3332+ simplecpp::TokenList (simplecpp::View{input},filenames," " );
3333+ }
3334+ {
3335+ const char input[] = " code" ;
3336+ simplecpp::TokenList (simplecpp::View{input},filenames," " );
3337+ }
3338+ // sized array + size via View/std::span
3339+ {
3340+ char input[] = " code" ; // NOLINT(misc-const-correctness)
3341+ simplecpp::TokenList ({input,sizeof (input)},filenames," " );
3342+ }
3343+ {
3344+ const char input[] = " code" ;
3345+ simplecpp::TokenList ({input,sizeof (input)},filenames," " );
3346+ }
3347+ // sized array
3348+ {
3349+ char input[] = " code" ; // NOLINT(misc-const-correctness)
3350+ simplecpp::TokenList (input,filenames," " );
3351+ }
3352+ {
3353+ const char input[] = " code" ;
3354+ simplecpp::TokenList (input,filenames," " );
3355+ }
3356+ {
3357+ unsigned char input[] = " code" ; // NOLINT(misc-const-correctness)
3358+ simplecpp::TokenList (input,filenames," " );
3359+ }
3360+ {
3361+ const unsigned char input[] = " code" ;
3362+ simplecpp::TokenList (input,filenames," " );
3363+ }
3364+ // std::string via View/std::span (implicit)
3365+ {
3366+ std::string input = " code" ; // NOLINT(misc-const-correctness)
3367+ simplecpp::TokenList (input,filenames," " );
3368+ }
3369+ {
3370+ const std::string input = " code" ;
3371+ simplecpp::TokenList (input,filenames," " );
3372+ }
3373+ // std::string via View/std::span (explicit)
3374+ {
3375+ std::string input = " code" ; // NOLINT(misc-const-correctness)
3376+ simplecpp::TokenList ({input},filenames," " );
3377+ }
3378+ {
3379+ const std::string input = " code" ;
3380+ simplecpp::TokenList ({input},filenames," " );
3381+ }
3382+
3383+ // this test is to make sure the safe APIs are compiling
3384+ #ifdef __cpp_lib_string_view
33083385 {
33093386 const char input[] = " code" ;
33103387 const std::string_view sv = input;
33113388 // std::string_view can be implicitly converted into a std::span
33123389 simplecpp::TokenList (sv,filenames," " );
33133390 }
3314- # endif
3315- # ifdef __cpp_lib_span
3391+ #endif // __cpp_lib_string_view
3392+ #ifdef __cpp_lib_span
33163393 {
33173394 char input[] = " code" ;
33183395 const std::span sp = input;
@@ -3333,8 +3410,7 @@ static void safe_api()
33333410 const std::span sp = input;
33343411 simplecpp::TokenList (sp,filenames," " );
33353412 }
3336- # endif
3337- #endif
3413+ #endif // __cpp_lib_span
33383414}
33393415
33403416static void isAbsolutePath () {
@@ -3660,7 +3736,7 @@ int main(int argc, char **argv)
36603736
36613737 TEST_CASE (preprocess_files);
36623738
3663- TEST_CASE (safe_api );
3739+ TEST_CASE (tokenlist_api );
36643740
36653741 TEST_CASE (isAbsolutePath);
36663742
0 commit comments