File tree Expand file tree Collapse file tree 14 files changed +329
-84
lines changed
utils/bazel/llvm-project-overlay/libc Expand file tree Collapse file tree 14 files changed +329
-84
lines changed Original file line number Diff line number Diff line change @@ -171,8 +171,67 @@ LIBC_INLINE static constexpr int tolower(int ch) {
171171 }
172172}
173173
174+ LIBC_INLINE static constexpr int toupper (int ch) {
175+ switch (ch) {
176+ case ' a' :
177+ return ' A' ;
178+ case ' b' :
179+ return ' B' ;
180+ case ' c' :
181+ return ' C' ;
182+ case ' d' :
183+ return ' D' ;
184+ case ' e' :
185+ return ' E' ;
186+ case ' f' :
187+ return ' F' ;
188+ case ' g' :
189+ return ' G' ;
190+ case ' h' :
191+ return ' H' ;
192+ case ' i' :
193+ return ' I' ;
194+ case ' j' :
195+ return ' J' ;
196+ case ' k' :
197+ return ' K' ;
198+ case ' l' :
199+ return ' L' ;
200+ case ' m' :
201+ return ' M' ;
202+ case ' n' :
203+ return ' N' ;
204+ case ' o' :
205+ return ' O' ;
206+ case ' p' :
207+ return ' P' ;
208+ case ' q' :
209+ return ' Q' ;
210+ case ' r' :
211+ return ' R' ;
212+ case ' s' :
213+ return ' S' ;
214+ case ' t' :
215+ return ' T' ;
216+ case ' u' :
217+ return ' U' ;
218+ case ' v' :
219+ return ' V' ;
220+ case ' w' :
221+ return ' W' ;
222+ case ' x' :
223+ return ' X' ;
224+ case ' y' :
225+ return ' Y' ;
226+ case ' z' :
227+ return ' Z' ;
228+ default :
229+ return ch;
230+ }
231+ }
232+
174233LIBC_INLINE static constexpr bool isalpha (int ch) {
175- switch (tolower (ch) ) {
234+ switch (ch ) {
176235 case ' a' :
177236 case ' b' :
178237 case ' c' :
@@ -199,18 +258,110 @@ LIBC_INLINE static constexpr bool isalpha(int ch) {
199258 case ' x' :
200259 case ' y' :
201260 case ' z' :
261+ case ' A' :
262+ case ' B' :
263+ case ' C' :
264+ case ' D' :
265+ case ' E' :
266+ case ' F' :
267+ case ' G' :
268+ case ' H' :
269+ case ' I' :
270+ case ' J' :
271+ case ' K' :
272+ case ' L' :
273+ case ' M' :
274+ case ' N' :
275+ case ' O' :
276+ case ' P' :
277+ case ' Q' :
278+ case ' R' :
279+ case ' S' :
280+ case ' T' :
281+ case ' U' :
282+ case ' V' :
283+ case ' W' :
284+ case ' X' :
285+ case ' Y' :
286+ case ' Z' :
202287 return true ;
203288 default :
204289 return false ;
205290 }
206291}
207292
208293LIBC_INLINE static constexpr bool isalnum (int ch) {
209- return isalpha (ch) || isdigit (ch);
294+ switch (ch) {
295+ case ' a' :
296+ case ' b' :
297+ case ' c' :
298+ case ' d' :
299+ case ' e' :
300+ case ' f' :
301+ case ' g' :
302+ case ' h' :
303+ case ' i' :
304+ case ' j' :
305+ case ' k' :
306+ case ' l' :
307+ case ' m' :
308+ case ' n' :
309+ case ' o' :
310+ case ' p' :
311+ case ' q' :
312+ case ' r' :
313+ case ' s' :
314+ case ' t' :
315+ case ' u' :
316+ case ' v' :
317+ case ' w' :
318+ case ' x' :
319+ case ' y' :
320+ case ' z' :
321+ case ' A' :
322+ case ' B' :
323+ case ' C' :
324+ case ' D' :
325+ case ' E' :
326+ case ' F' :
327+ case ' G' :
328+ case ' H' :
329+ case ' I' :
330+ case ' J' :
331+ case ' K' :
332+ case ' L' :
333+ case ' M' :
334+ case ' N' :
335+ case ' O' :
336+ case ' P' :
337+ case ' Q' :
338+ case ' R' :
339+ case ' S' :
340+ case ' T' :
341+ case ' U' :
342+ case ' V' :
343+ case ' W' :
344+ case ' X' :
345+ case ' Y' :
346+ case ' Z' :
347+ case ' 0' :
348+ case ' 1' :
349+ case ' 2' :
350+ case ' 3' :
351+ case ' 4' :
352+ case ' 5' :
353+ case ' 6' :
354+ case ' 7' :
355+ case ' 8' :
356+ case ' 9' :
357+ return true ;
358+ default :
359+ return false ;
360+ }
210361}
211362
212363LIBC_INLINE static constexpr int b36_char_to_int (int ch) {
213- switch (tolower (ch) ) {
364+ switch (ch ) {
214365 case ' 0' :
215366 return 0 ;
216367 case ' 1' :
@@ -232,62 +383,171 @@ LIBC_INLINE static constexpr int b36_char_to_int(int ch) {
232383 case ' 9' :
233384 return 9 ;
234385 case ' a' :
386+ case ' A' :
235387 return 10 ;
236388 case ' b' :
389+ case ' B' :
237390 return 11 ;
238391 case ' c' :
392+ case ' C' :
239393 return 12 ;
240394 case ' d' :
395+ case ' D' :
241396 return 13 ;
242397 case ' e' :
398+ case ' E' :
243399 return 14 ;
244400 case ' f' :
401+ case ' F' :
245402 return 15 ;
246403 case ' g' :
404+ case ' G' :
247405 return 16 ;
248406 case ' h' :
407+ case ' H' :
249408 return 17 ;
250409 case ' i' :
410+ case ' I' :
251411 return 18 ;
252412 case ' j' :
413+ case ' J' :
253414 return 19 ;
254415 case ' k' :
416+ case ' K' :
255417 return 20 ;
256418 case ' l' :
419+ case ' L' :
257420 return 21 ;
258421 case ' m' :
422+ case ' M' :
259423 return 22 ;
260424 case ' n' :
425+ case ' N' :
261426 return 23 ;
262427 case ' o' :
428+ case ' O' :
263429 return 24 ;
264430 case ' p' :
431+ case ' P' :
265432 return 25 ;
266433 case ' q' :
434+ case ' Q' :
267435 return 26 ;
268436 case ' r' :
437+ case ' R' :
269438 return 27 ;
270439 case ' s' :
440+ case ' S' :
271441 return 28 ;
272442 case ' t' :
443+ case ' T' :
273444 return 29 ;
274445 case ' u' :
446+ case ' U' :
275447 return 30 ;
276448 case ' v' :
449+ case ' V' :
277450 return 31 ;
278451 case ' w' :
452+ case ' W' :
279453 return 32 ;
280454 case ' x' :
455+ case ' X' :
281456 return 33 ;
282457 case ' y' :
458+ case ' Y' :
283459 return 34 ;
284460 case ' z' :
461+ case ' Z' :
285462 return 35 ;
286463 default :
287464 return 0 ;
288465 }
289466}
290467
468+ LIBC_INLINE static constexpr int int_to_b36_char (int num) {
469+ // Can't actually use LIBC_ASSERT here because it depends on integer_to_string
470+ // which depends on this.
471+
472+ // LIBC_ASSERT(num < 36);
473+ switch (num) {
474+ case 0 :
475+ return ' 0' ;
476+ case 1 :
477+ return ' 1' ;
478+ case 2 :
479+ return ' 2' ;
480+ case 3 :
481+ return ' 3' ;
482+ case 4 :
483+ return ' 4' ;
484+ case 5 :
485+ return ' 5' ;
486+ case 6 :
487+ return ' 6' ;
488+ case 7 :
489+ return ' 7' ;
490+ case 8 :
491+ return ' 8' ;
492+ case 9 :
493+ return ' 9' ;
494+ case 10 :
495+ return ' a' ;
496+ case 11 :
497+ return ' b' ;
498+ case 12 :
499+ return ' c' ;
500+ case 13 :
501+ return ' d' ;
502+ case 14 :
503+ return ' e' ;
504+ case 15 :
505+ return ' f' ;
506+ case 16 :
507+ return ' g' ;
508+ case 17 :
509+ return ' h' ;
510+ case 18 :
511+ return ' i' ;
512+ case 19 :
513+ return ' j' ;
514+ case 20 :
515+ return ' k' ;
516+ case 21 :
517+ return ' l' ;
518+ case 22 :
519+ return ' m' ;
520+ case 23 :
521+ return ' n' ;
522+ case 24 :
523+ return ' o' ;
524+ case 25 :
525+ return ' p' ;
526+ case 26 :
527+ return ' q' ;
528+ case 27 :
529+ return ' r' ;
530+ case 28 :
531+ return ' s' ;
532+ case 29 :
533+ return ' t' ;
534+ case 30 :
535+ return ' u' ;
536+ case 31 :
537+ return ' v' ;
538+ case 32 :
539+ return ' w' ;
540+ case 33 :
541+ return ' x' ;
542+ case 34 :
543+ return ' y' ;
544+ case 35 :
545+ return ' z' ;
546+ default :
547+ return ' !' ;
548+ }
549+ }
550+
291551LIBC_INLINE static constexpr bool isspace (int ch) {
292552 switch (ch) {
293553 case ' ' :
You can’t perform that action at this time.
0 commit comments