@@ -20,6 +20,14 @@ native mod llvm = "libLLVM-2.7.so" {
20
20
type PassManagerRef ;
21
21
type UseRef ;
22
22
23
+ /* FIXME: These are enums in the C header. Represent them how, in rust? */
24
+ type Linkage ;
25
+ type Attribute ;
26
+ type Visibility ;
27
+ type CallConv ;
28
+ type IntPredicate ;
29
+ type RealPredicate ;
30
+ type Opcode ;
23
31
24
32
/* Create and destroy contexts. */
25
33
fn ContextCreate ( ) -> ContextRef ;
@@ -29,7 +37,7 @@ native mod llvm = "libLLVM-2.7.so" {
29
37
fn GetMDKindID ( sbuf Name , uint SLen ) -> uint ;
30
38
31
39
/* Create and destroy modules. */
32
- fn ModuleCreateWithName ( sbuf ModuleID ) -> ModuleRef ;
40
+ fn ModuleCreateWithNameInContext ( sbuf ModuleID , ContextRef C ) -> ModuleRef ;
33
41
fn DisposeModule ( ModuleRef M ) ;
34
42
35
43
/** Data layout. See Module::getDataLayout. */
@@ -274,4 +282,344 @@ native mod llvm = "libLLVM-2.7.so" {
274
282
Bool HasSideEffects , Bool IsAlignStack ) -> ValueRef ;
275
283
fn BlockAddress ( ValueRef F , BasicBlockRef BB ) -> ValueRef ;
276
284
277
- }
285
+
286
+
287
+ /* Operations on global variables, functions, and aliases (globals) */
288
+ fn GetGlobalParent ( ValueRef Global ) -> ModuleRef ;
289
+ fn IsDeclaration ( ValueRef Global ) -> Bool ;
290
+ fn GetLinkage ( ValueRef Global ) -> Linkage ;
291
+ fn SetLinkage ( ValueRef Global , Linkage Link ) ;
292
+ fn GetSection ( ValueRef Global ) -> sbuf ;
293
+ fn SetSection ( ValueRef Global , sbuf Section ) ;
294
+ fn GetVisibility ( ValueRef Global ) -> Visibility ;
295
+ fn SetVisibility ( ValueRef Global , Visibility Viz ) ;
296
+ fn GetAlignment ( ValueRef Global ) -> uint ;
297
+ fn SetAlignment ( ValueRef Global , uint Bytes ) ;
298
+
299
+
300
+ /* Operations on global variables */
301
+ fn AddGlobal ( ModuleRef M , TypeRef Ty , sbuf Name ) -> ValueRef ;
302
+ fn AddGlobalInAddressSpace ( ModuleRef M , TypeRef Ty ,
303
+ sbuf Name ,
304
+ uint AddressSpace ) -> ValueRef ;
305
+ fn GetNamedGlobal ( ModuleRef M , sbuf Name ) -> ValueRef ;
306
+ fn GetFirstGlobal ( ModuleRef M ) -> ValueRef ;
307
+ fn GetLastGlobal ( ModuleRef M ) -> ValueRef ;
308
+ fn GetNextGlobal ( ValueRef GlobalVar ) -> ValueRef ;
309
+ fn GetPreviousGlobal ( ValueRef GlobalVar ) -> ValueRef ;
310
+ fn DeleteGlobal ( ValueRef GlobalVar ) ;
311
+ fn GetInitializer ( ValueRef GlobalVar ) -> ValueRef ;
312
+ fn SetInitializer ( ValueRef GlobalVar , ValueRef ConstantVal ) ;
313
+ fn IsThreadLocal ( ValueRef GlobalVar ) -> Bool ;
314
+ fn SetThreadLocal ( ValueRef GlobalVar , Bool IsThreadLocal ) ;
315
+ fn IsGlobalConstant ( ValueRef GlobalVar ) -> Bool ;
316
+ fn SetGlobalConstant ( ValueRef GlobalVar , Bool IsConstant ) ;
317
+
318
+ /* Operations on aliases */
319
+ fn AddAlias ( ModuleRef M , TypeRef Ty , ValueRef Aliasee ,
320
+ sbuf Name ) -> ValueRef ;
321
+
322
+ /* Operations on functions */
323
+ fn AddFunction ( ModuleRef M , sbuf Name ,
324
+ TypeRef FunctionTy ) -> ValueRef ;
325
+ fn GetNamedFunction ( ModuleRef M , sbuf Name ) -> ValueRef ;
326
+ fn GetFirstFunction ( ModuleRef M ) -> ValueRef ;
327
+ fn GetLastFunction ( ModuleRef M ) -> ValueRef ;
328
+ fn GetNextFunction ( ValueRef Fn ) -> ValueRef ;
329
+ fn GetPreviousFunction ( ValueRef Fn ) -> ValueRef ;
330
+ fn DeleteFunction ( ValueRef Fn ) ;
331
+ fn GetIntrinsicID ( ValueRef Fn ) -> uint ;
332
+ fn GetFunctionCallConv ( ValueRef Fn ) -> uint ;
333
+ fn SetFunctionCallConv ( ValueRef Fn , uint CC ) ;
334
+ fn GetGC ( ValueRef Fn ) -> sbuf ;
335
+ fn SetGC ( ValueRef Fn , sbuf Name ) ;
336
+ fn AddFunctionAttr ( ValueRef Fn , Attribute PA ) ;
337
+ fn GetFunctionAttr ( ValueRef Fn ) -> Attribute ;
338
+ fn RemoveFunctionAttr ( ValueRef Fn , Attribute PA ) ;
339
+
340
+ /* Operations on parameters */
341
+ fn CountParams ( ValueRef Fn ) -> uint ;
342
+ fn GetParams ( ValueRef Fn , vbuf Params ) ;
343
+ fn GetParam ( ValueRef Fn , uint Index ) -> ValueRef ;
344
+ fn GetParamParent ( ValueRef Inst ) -> ValueRef ;
345
+ fn GetFirstParam ( ValueRef Fn ) -> ValueRef ;
346
+ fn GetLastParam ( ValueRef Fn ) -> ValueRef ;
347
+ fn GetNextParam ( ValueRef Arg ) -> ValueRef ;
348
+ fn GetPreviousParam ( ValueRef Arg ) -> ValueRef ;
349
+ fn AddAttribute ( ValueRef Arg , Attribute PA ) ;
350
+ fn RemoveAttribute ( ValueRef Arg , Attribute PA ) ;
351
+ fn GetAttribute ( ValueRef Arg ) -> Attribute ;
352
+ fn SetParamAlignment ( ValueRef Arg , uint align ) ;
353
+
354
+ /* Operations on basic blocks */
355
+ fn BasicBlockAsValue ( BasicBlockRef BB ) -> ValueRef ;
356
+ fn ValueIsBasicBlock ( ValueRef Val ) -> Bool ;
357
+ fn ValueAsBasicBlock ( ValueRef Val ) -> BasicBlockRef ;
358
+ fn GetBasicBlockParent ( BasicBlockRef BB ) -> ValueRef ;
359
+ fn CountBasicBlocks ( ValueRef Fn ) -> uint ;
360
+ fn GetBasicBlocks ( ValueRef Fn , vbuf BasicBlocks ) ;
361
+ fn GetFirstBasicBlock ( ValueRef Fn ) -> BasicBlockRef ;
362
+ fn GetLastBasicBlock ( ValueRef Fn ) -> BasicBlockRef ;
363
+ fn GetNextBasicBlock ( BasicBlockRef BB ) -> BasicBlockRef ;
364
+ fn GetPreviousBasicBlock ( BasicBlockRef BB ) -> BasicBlockRef ;
365
+ fn GetEntryBasicBlock ( ValueRef Fn ) -> BasicBlockRef ;
366
+
367
+ fn AppendBasicBlockInContext ( ContextRef C , ValueRef Fn ,
368
+ sbuf Name ) -> BasicBlockRef ;
369
+ fn InsertBasicBlockInContext ( ContextRef C , BasicBlockRef BB ,
370
+ sbuf Name ) -> BasicBlockRef ;
371
+
372
+ fn AppendBasicBlock ( ValueRef Fn , sbuf Name ) -> BasicBlockRef ;
373
+ fn InsertBasicBlock ( BasicBlockRef InsertBeforeBB ,
374
+ sbuf Name ) -> BasicBlockRef ;
375
+ fn DeleteBasicBlock ( BasicBlockRef BB ) ;
376
+
377
+ /* Operations on instructions */
378
+ fn GetInstructionParent ( ValueRef Inst ) -> BasicBlockRef ;
379
+ fn GetFirstInstruction ( BasicBlockRef BB ) -> ValueRef ;
380
+ fn GetLastInstruction ( BasicBlockRef BB ) -> ValueRef ;
381
+ fn GetNextInstruction ( ValueRef Inst ) -> ValueRef ;
382
+ fn GetPreviousInstruction ( ValueRef Inst ) -> ValueRef ;
383
+
384
+ /* Operations on call sites */
385
+ fn SetInstructionCallConv ( ValueRef Instr , uint CC ) ;
386
+ fn GetInstructionCallConv ( ValueRef Instr ) -> uint ;
387
+ fn AddInstrAttribute ( ValueRef Instr , uint index , Attribute IA ) ;
388
+ fn RemoveInstrAttribute ( ValueRef Instr , uint index , Attribute IA ) ;
389
+ fn SetInstrParamAlignment ( ValueRef Instr , uint index , uint align ) ;
390
+
391
+ /* Operations on call instructions (only) */
392
+ fn IsTailCall ( ValueRef CallInst ) -> Bool ;
393
+ fn SetTailCall ( ValueRef CallInst , Bool IsTailCall ) ;
394
+
395
+ /* Operations on phi nodes */
396
+ fn AddIncoming ( ValueRef PhiNode , vbuf IncomingValues ,
397
+ vbuf IncomingBlocks , uint Count ) ;
398
+ fn CountIncoming ( ValueRef PhiNode ) -> uint ;
399
+ fn GetIncomingValue ( ValueRef PhiNode , uint Index ) -> ValueRef ;
400
+ fn GetIncomingBlock ( ValueRef PhiNode , uint Index ) -> BasicBlockRef ;
401
+
402
+ /* Instruction builders */
403
+ fn CreateBuilderInContext ( ContextRef C ) -> BuilderRef ;
404
+ fn CreateBuilder ( ) -> BuilderRef ;
405
+ fn PositionBuilder ( BuilderRef Builder , BasicBlockRef Block ,
406
+ ValueRef Instr ) ;
407
+ fn PositionBuilderBefore ( BuilderRef Builder , ValueRef Instr ) ;
408
+ fn PositionBuilderAtEnd ( BuilderRef Builder , BasicBlockRef Block ) ;
409
+ fn GetInsertBlock ( BuilderRef Builder ) -> BasicBlockRef ;
410
+ fn ClearInsertionPosition ( BuilderRef Builder ) ;
411
+ fn InsertIntoBuilder ( BuilderRef Builder , ValueRef Instr ) ;
412
+ fn InsertIntoBuilderWithName ( BuilderRef Builder , ValueRef Instr ,
413
+ sbuf Name ) ;
414
+ fn DisposeBuilder ( BuilderRef Builder ) ;
415
+
416
+ /* Metadata */
417
+ fn SetCurrentDebugLocation ( BuilderRef Builder , ValueRef L ) ;
418
+ fn GetCurrentDebugLocation ( BuilderRef Builder ) -> ValueRef ;
419
+ fn SetInstDebugLocation ( BuilderRef Builder , ValueRef Inst ) ;
420
+
421
+ /* Terminators */
422
+ fn BuildRetVoid ( BuilderRef B ) -> ValueRef ;
423
+ fn BuildRet ( BuilderRef B , ValueRef V ) -> ValueRef ;
424
+ fn BuildAggregateRet ( BuilderRef B , vbuf RetVals ,
425
+ uint N ) -> ValueRef ;
426
+ fn BuildBr ( BuilderRef B , BasicBlockRef Dest ) -> ValueRef ;
427
+ fn BuildCondBr ( BuilderRef B , ValueRef If ,
428
+ BasicBlockRef Then , BasicBlockRef Else ) -> ValueRef ;
429
+ fn BuildSwitch ( BuilderRef B , ValueRef V ,
430
+ BasicBlockRef Else , uint NumCases ) -> ValueRef ;
431
+ fn BuildIndirectBr ( BuilderRef B , ValueRef Addr ,
432
+ uint NumDests ) -> ValueRef ;
433
+ fn BuildInvoke ( BuilderRef B , ValueRef Fn ,
434
+ vbuf Args , uint NumArgs ,
435
+ BasicBlockRef Then , BasicBlockRef Catch ,
436
+ sbuf Name ) -> ValueRef ;
437
+ fn BuildUnwind ( BuilderRef B ) -> ValueRef ;
438
+ fn BuildUnreachable ( BuilderRef B ) -> ValueRef ;
439
+
440
+ /* Add a case to the switch instruction */
441
+ fn AddCase ( ValueRef Switch , ValueRef OnVal ,
442
+ BasicBlockRef Dest ) ;
443
+
444
+ /* Add a destination to the indirectbr instruction */
445
+ fn AddDestination ( ValueRef IndirectBr , BasicBlockRef Dest ) ;
446
+
447
+ /* Arithmetic */
448
+ fn BuildAdd ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
449
+ sbuf Name ) -> ValueRef ;
450
+ fn BuildNSWAdd ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
451
+ sbuf Name ) -> ValueRef ;
452
+ fn BuildNUWAdd ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
453
+ sbuf Name ) -> ValueRef ;
454
+ fn BuildFAdd ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
455
+ sbuf Name ) -> ValueRef ;
456
+ fn BuildSub ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
457
+ sbuf Name ) -> ValueRef ;
458
+ fn BuildNSWSub ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
459
+ sbuf Name ) -> ValueRef ;
460
+ fn BuildNUWSub ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
461
+ sbuf Name ) -> ValueRef ;
462
+ fn BuildFSub ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
463
+ sbuf Name ) -> ValueRef ;
464
+ fn BuildMul ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
465
+ sbuf Name ) -> ValueRef ;
466
+ fn BuildNSWMul ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
467
+ sbuf Name ) -> ValueRef ;
468
+ fn BuildNUWMul ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
469
+ sbuf Name ) -> ValueRef ;
470
+ fn BuildFMul ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
471
+ sbuf Name ) -> ValueRef ;
472
+ fn BuildUDiv ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
473
+ sbuf Name ) -> ValueRef ;
474
+ fn BuildSDiv ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
475
+ sbuf Name ) -> ValueRef ;
476
+ fn BuildExactSDiv ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
477
+ sbuf Name ) -> ValueRef ;
478
+ fn BuildFDiv ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
479
+ sbuf Name ) -> ValueRef ;
480
+ fn BuildURem ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
481
+ sbuf Name ) -> ValueRef ;
482
+ fn BuildSRem ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
483
+ sbuf Name ) -> ValueRef ;
484
+ fn BuildFRem ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
485
+ sbuf Name ) -> ValueRef ;
486
+ fn BuildShl ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
487
+ sbuf Name ) -> ValueRef ;
488
+ fn BuildLShr ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
489
+ sbuf Name ) -> ValueRef ;
490
+ fn BuildAShr ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
491
+ sbuf Name ) -> ValueRef ;
492
+ fn BuildAnd ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
493
+ sbuf Name ) -> ValueRef ;
494
+ fn BuildOr ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
495
+ sbuf Name ) -> ValueRef ;
496
+ fn BuildXor ( BuilderRef B , ValueRef LHS , ValueRef RHS ,
497
+ sbuf Name ) -> ValueRef ;
498
+ fn BuildBinOp ( BuilderRef B , Opcode Op ,
499
+ ValueRef LHS , ValueRef RHS ,
500
+ sbuf Name ) -> ValueRef ;
501
+ fn BuildNeg ( BuilderRef B , ValueRef V , sbuf Name ) -> ValueRef ;
502
+ fn BuildNSWNeg ( BuilderRef B , ValueRef V ,
503
+ sbuf Name ) -> ValueRef ;
504
+ fn BuildNUWNeg ( BuilderRef B , ValueRef V ,
505
+ sbuf Name ) -> ValueRef ;
506
+ fn BuildFNeg ( BuilderRef B , ValueRef V , sbuf Name ) -> ValueRef ;
507
+ fn BuildNot ( BuilderRef B , ValueRef V , sbuf Name ) -> ValueRef ;
508
+
509
+ /* Memory */
510
+ fn BuildMalloc ( BuilderRef B , TypeRef Ty , sbuf Name ) -> ValueRef ;
511
+ fn BuildArrayMalloc ( BuilderRef B , TypeRef Ty ,
512
+ ValueRef Val , sbuf Name ) -> ValueRef ;
513
+ fn BuildAlloca ( BuilderRef B , TypeRef Ty , sbuf Name ) -> ValueRef ;
514
+ fn BuildArrayAlloca ( BuilderRef B , TypeRef Ty ,
515
+ ValueRef Val , sbuf Name ) -> ValueRef ;
516
+ fn BuildFree ( BuilderRef B , ValueRef PointerVal ) -> ValueRef ;
517
+ fn BuildLoad ( BuilderRef B , ValueRef PointerVal ,
518
+ sbuf Name ) -> ValueRef ;
519
+ fn BuildStore ( BuilderRef B , ValueRef Val , ValueRef Ptr ) -> ValueRef ;
520
+ fn BuildGEP ( BuilderRef B , ValueRef Pointer ,
521
+ vbuf Indices , uint NumIndices ,
522
+ sbuf Name ) -> ValueRef ;
523
+ fn BuildInBoundsGEP ( BuilderRef B , ValueRef Pointer ,
524
+ vbuf Indices , uint NumIndices ,
525
+ sbuf Name ) -> ValueRef ;
526
+ fn BuildStructGEP ( BuilderRef B , ValueRef Pointer ,
527
+ uint Idx , sbuf Name ) -> ValueRef ;
528
+ fn BuildGlobalString ( BuilderRef B , sbuf Str ,
529
+ sbuf Name ) -> ValueRef ;
530
+ fn BuildGlobalStringPtr ( BuilderRef B , sbuf Str ,
531
+ sbuf Name ) -> ValueRef ;
532
+
533
+ /* Casts */
534
+ fn BuildTrunc ( BuilderRef B , ValueRef Val ,
535
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
536
+ fn BuildZExt ( BuilderRef B , ValueRef Val ,
537
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
538
+ fn BuildSExt ( BuilderRef B , ValueRef Val ,
539
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
540
+ fn BuildFPToUI ( BuilderRef B , ValueRef Val ,
541
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
542
+ fn BuildFPToSI ( BuilderRef B , ValueRef Val ,
543
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
544
+ fn BuildUIToFP ( BuilderRef B , ValueRef Val ,
545
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
546
+ fn BuildSIToFP ( BuilderRef B , ValueRef Val ,
547
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
548
+ fn BuildFPTrunc ( BuilderRef B , ValueRef Val ,
549
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
550
+ fn BuildFPExt ( BuilderRef B , ValueRef Val ,
551
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
552
+ fn BuildPtrToInt ( BuilderRef B , ValueRef Val ,
553
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
554
+ fn BuildIntToPtr ( BuilderRef B , ValueRef Val ,
555
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
556
+ fn BuildBitCast ( BuilderRef B , ValueRef Val ,
557
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
558
+ fn BuildZExtOrBitCast ( BuilderRef B , ValueRef Val ,
559
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
560
+ fn BuildSExtOrBitCast ( BuilderRef B , ValueRef Val ,
561
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
562
+ fn BuildTruncOrBitCast ( BuilderRef B , ValueRef Val ,
563
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
564
+ fn BuildCast ( BuilderRef B , Opcode Op , ValueRef Val ,
565
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
566
+ fn BuildPointerCast ( BuilderRef B , ValueRef Val ,
567
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
568
+ fn BuildIntCast ( BuilderRef B , ValueRef Val ,
569
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
570
+ fn BuildFPCast ( BuilderRef B , ValueRef Val ,
571
+ TypeRef DestTy , sbuf Name ) -> ValueRef ;
572
+
573
+ /* Comparisons */
574
+ fn BuildICmp ( BuilderRef B , IntPredicate Op ,
575
+ ValueRef LHS , ValueRef RHS ,
576
+ sbuf Name ) -> ValueRef ;
577
+ fn BuildFCmp ( BuilderRef B , RealPredicate Op ,
578
+ ValueRef LHS , ValueRef RHS ,
579
+ sbuf Name ) -> ValueRef ;
580
+
581
+ /* Miscellaneous instructions */
582
+ fn BuildPhi ( BuilderRef B , TypeRef Ty , sbuf Name ) -> ValueRef ;
583
+ fn BuildCall ( BuilderRef B , ValueRef Fn ,
584
+ vbuf Args , uint NumArgs ,
585
+ sbuf Name ) -> ValueRef ;
586
+ fn BuildSelect ( BuilderRef B , ValueRef If ,
587
+ ValueRef Then , ValueRef Else ,
588
+ sbuf Name ) -> ValueRef ;
589
+ fn BuildVAArg ( BuilderRef B , ValueRef List , TypeRef Ty ,
590
+ sbuf Name ) -> ValueRef ;
591
+ fn BuildExtractElement ( BuilderRef B , ValueRef VecVal ,
592
+ ValueRef Index , sbuf Name ) -> ValueRef ;
593
+ fn BuildInsertElement ( BuilderRef B , ValueRef VecVal ,
594
+ ValueRef EltVal , ValueRef Index ,
595
+ sbuf Name ) -> ValueRef ;
596
+ fn BuildShuffleVector ( BuilderRef B , ValueRef V1 ,
597
+ ValueRef V2 , ValueRef Mask ,
598
+ sbuf Name ) -> ValueRef ;
599
+ fn BuildExtractValue ( BuilderRef B , ValueRef AggVal ,
600
+ uint Index , sbuf Name ) -> ValueRef ;
601
+ fn BuildInsertValue ( BuilderRef B , ValueRef AggVal ,
602
+ ValueRef EltVal , uint Index ,
603
+ sbuf Name ) -> ValueRef ;
604
+
605
+ fn BuildIsNull ( BuilderRef B , ValueRef Val ,
606
+ sbuf Name ) -> ValueRef ;
607
+ fn BuildIsNotNull ( BuilderRef B , ValueRef Val ,
608
+ sbuf Name ) -> ValueRef ;
609
+ fn BuildPtrDiff ( BuilderRef B , ValueRef LHS ,
610
+ ValueRef RHS , sbuf Name ) -> ValueRef ;
611
+
612
+
613
+
614
+ }
615
+
616
+ //
617
+ // Local Variables:
618
+ // mode: rust
619
+ // fill-column: 78;
620
+ // indent-tabs-mode: nil
621
+ // c-basic-offset: 4
622
+ // buffer-file-coding-system: utf-8-unix
623
+ // compile-command: "make -k -C ../.. 2>&1 | sed -e 's/\\/x\\//x:\\//g'";
624
+ // End:
625
+ //
0 commit comments