@@ -445,6 +445,10 @@ OMR::TransformUtil::generateDataAddrLoadTrees(TR::Compilation *comp, TR::Node *a
445
445
TR::Compiler->om .isOffHeapAllocationEnabled (),
446
446
" This helper shouldn't be called if off heap allocation is disabled.\n " );
447
447
448
+ TR_ASSERT_FATAL_WITH_NODE (arrayObject,
449
+ arrayObject->getDataType ().isAddress (),
450
+ " arrayObject must be address data type.\n " );
451
+
448
452
TR::SymbolReference *dataAddrFieldOffset = comp->getSymRefTab ()->findOrCreateContiguousArrayDataAddrFieldShadowSymRef ();
449
453
TR::Node *dataAddrField = TR::Node::createWithSymRef (TR::aloadi, 1 , arrayObject, 0 , dataAddrFieldOffset);
450
454
dataAddrField->setIsInternalPointer (true );
@@ -463,6 +467,14 @@ OMR::TransformUtil::generateArrayElementAddressTrees(TR::Compilation *comp, TR::
463
467
!TR::Compiler->om .canGenerateArraylets (),
464
468
" This helper shouldn't be called if arraylets are enabled.\n " );
465
469
470
+ TR_ASSERT_FATAL_WITH_NODE (arrayNode,
471
+ arrayNode->getDataType ().isAddress (),
472
+ " arrayNode must be address data type.\n " );
473
+
474
+ TR_ASSERT_FATAL_WITH_NODE (offsetNode,
475
+ offsetNode == NULL || offsetNode->getDataType ().isIntegral (),
476
+ " offsetNode must be integeral data type.\n " );
477
+
466
478
#if defined(OMR_GC_SPARSE_HEAP_ALLOCATION)
467
479
if (TR::Compiler->om .isOffHeapAllocationEnabled ())
468
480
{
@@ -507,13 +519,25 @@ OMR::TransformUtil::generateArrayElementAddressTrees(TR::Compilation *comp, TR::
507
519
TR::Node *
508
520
OMR::TransformUtil::generateFirstArrayElementAddressTrees (TR::Compilation *comp, TR::Node *arrayObject)
509
521
{
522
+ TR_ASSERT_FATAL_WITH_NODE (arrayObject,
523
+ arrayObject->getDataType ().isAddress (),
524
+ " arrayObject must be address data type.\n " );
525
+
510
526
TR::Node *firstArrayElementNode = generateArrayElementAddressTrees (comp, arrayObject);
511
527
return firstArrayElementNode;
512
528
}
513
529
514
530
TR::Node *
515
531
OMR::TransformUtil::generateConvertArrayElementIndexToOffsetTrees (TR::Compilation *comp, TR::Node *indexNode, TR::Node *elementSizeNode, int32_t elementSize, bool useShiftOpCode)
516
532
{
533
+ TR_ASSERT_FATAL_WITH_NODE (indexNode,
534
+ indexNode->getDataType ().isIntegral (),
535
+ " indexNode must be integeral data type.\n " );
536
+
537
+ TR_ASSERT_FATAL_WITH_NODE (elementSizeNode,
538
+ elementSizeNode == NULL || elementSizeNode->getDataType ().isIntegral (),
539
+ " elementSizeNode must be integeral data type.\n " );
540
+
517
541
TR::Node *offsetNode = indexNode->createLongIfNeeded ();
518
542
TR::Node *strideNode = elementSizeNode;
519
543
if (strideNode)
0 commit comments