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) {
171
171
}
172
172
}
173
173
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
+
174
233
LIBC_INLINE static constexpr bool isalpha (int ch) {
175
- switch (tolower (ch) ) {
234
+ switch (ch ) {
176
235
case ' a' :
177
236
case ' b' :
178
237
case ' c' :
@@ -199,18 +258,110 @@ LIBC_INLINE static constexpr bool isalpha(int ch) {
199
258
case ' x' :
200
259
case ' y' :
201
260
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' :
202
287
return true ;
203
288
default :
204
289
return false ;
205
290
}
206
291
}
207
292
208
293
LIBC_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
+ }
210
361
}
211
362
212
363
LIBC_INLINE static constexpr int b36_char_to_int (int ch) {
213
- switch (tolower (ch) ) {
364
+ switch (ch ) {
214
365
case ' 0' :
215
366
return 0 ;
216
367
case ' 1' :
@@ -232,62 +383,171 @@ LIBC_INLINE static constexpr int b36_char_to_int(int ch) {
232
383
case ' 9' :
233
384
return 9 ;
234
385
case ' a' :
386
+ case ' A' :
235
387
return 10 ;
236
388
case ' b' :
389
+ case ' B' :
237
390
return 11 ;
238
391
case ' c' :
392
+ case ' C' :
239
393
return 12 ;
240
394
case ' d' :
395
+ case ' D' :
241
396
return 13 ;
242
397
case ' e' :
398
+ case ' E' :
243
399
return 14 ;
244
400
case ' f' :
401
+ case ' F' :
245
402
return 15 ;
246
403
case ' g' :
404
+ case ' G' :
247
405
return 16 ;
248
406
case ' h' :
407
+ case ' H' :
249
408
return 17 ;
250
409
case ' i' :
410
+ case ' I' :
251
411
return 18 ;
252
412
case ' j' :
413
+ case ' J' :
253
414
return 19 ;
254
415
case ' k' :
416
+ case ' K' :
255
417
return 20 ;
256
418
case ' l' :
419
+ case ' L' :
257
420
return 21 ;
258
421
case ' m' :
422
+ case ' M' :
259
423
return 22 ;
260
424
case ' n' :
425
+ case ' N' :
261
426
return 23 ;
262
427
case ' o' :
428
+ case ' O' :
263
429
return 24 ;
264
430
case ' p' :
431
+ case ' P' :
265
432
return 25 ;
266
433
case ' q' :
434
+ case ' Q' :
267
435
return 26 ;
268
436
case ' r' :
437
+ case ' R' :
269
438
return 27 ;
270
439
case ' s' :
440
+ case ' S' :
271
441
return 28 ;
272
442
case ' t' :
443
+ case ' T' :
273
444
return 29 ;
274
445
case ' u' :
446
+ case ' U' :
275
447
return 30 ;
276
448
case ' v' :
449
+ case ' V' :
277
450
return 31 ;
278
451
case ' w' :
452
+ case ' W' :
279
453
return 32 ;
280
454
case ' x' :
455
+ case ' X' :
281
456
return 33 ;
282
457
case ' y' :
458
+ case ' Y' :
283
459
return 34 ;
284
460
case ' z' :
461
+ case ' Z' :
285
462
return 35 ;
286
463
default :
287
464
return 0 ;
288
465
}
289
466
}
290
467
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
+
291
551
LIBC_INLINE static constexpr bool isspace (int ch) {
292
552
switch (ch) {
293
553
case ' ' :
You can’t perform that action at this time.
0 commit comments