> Also, should the test code below (between %%%) be included in the
> testsuite?

It would be good but tests shouldn't output anything, they should be self 
testing,
and you will need to deal with making the test portable to all targets.

Given that the compiler itself uses this feature, I don't think this is worth
the trouble.

> @@ -613,12 +613,25 @@ __gnat_get_file_names_case_sensitive (void)
>        else
>       {
>         /* By default, we suppose filesystems aren't case sensitive on
> -          Windows and Darwin (but they are on arm-darwin).  */
> -#if defined (WINNT) || defined (__DJGPP__) \
> -  || (defined (__APPLE__) && !(defined (__arm__) || defined (__arm64__)))
> +          Windows or DOS.  */
> +#if defined (WINNT) || defined (__DJGPP__)
> +       file_names_case_sensitive_cache = 0;
> +#elif defined (__APPLE__)
> +       /* By default, macOS volumes are case-insensitive, iOS
> +          volumes are case-sensitive.  */
> +#if defined (TARGET_OS_OSX)      /* In recent SDK.  */
> +#if TARGET_OS_OSX                /* macOS.  */   
>         file_names_case_sensitive_cache = 0;
>  #else
>         file_names_case_sensitive_cache = 1;
> +#endif
> +#elif TARGET_OS_MAC    /* macOS, in older SDK.  */
> +       file_names_case_sensitive_cache = 0;
> +#else
> +       file_names_case_sensitive_cache = 1;
> +#endif
> +#else /* Neither Windows nor Apple.  */
> +       file_names_case_sensitive_cache = 1;
>  #endif

Please simplify the above to (untested):

 #elif defined (__APPLE__)
        /* By default, macOS volumes are case-insensitive, iOS
           volumes are case-sensitive.  */
 #if TARGET_OS_MAC    /* macOS, in older SDK.  */
         file_names_case_sensitive_cache = 0;
 #elif TARGET_OS_OSX  /* macOS, in recent SDK.  */
         file_names_case_sensitive_cache = 0;
 #else                /* assume iOS.  */
         file_names_case_sensitive_cache = 1;
 #endif
 #else /* Neither Windows nor Apple.  */
         file_names_case_sensitive_cache = 1;
 #endif

which is simpler and more readable and should be equivalent AFAICT.

OK with the above change.

Arno

Reply via email to