rts/sm/Storage.c: tweak __clear_cache proto for clang

Authored by trofi on Jul 5 2017, 2:36 AM.

Description

rts/sm/Storage.c: tweak __clear_cache proto for clang

clang defines '__clear_cache' slightly differently from gcc:

rts/sm/Storage.c:1349:13: error:
     error: conflicting types for '__clear_cache'
     |
1349 | extern void __clear_cache(char * begin, char * end);
     |             ^
extern void __clear_cache(char * begin, char * end);
            ^
     note: '__clear_cache' is a builtin with type 'void (void *, void *)'

Reported by Moritz Angermann.

While at it used 'builtin_clear_cache' if advertised by clang.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>