You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Tim Armstrong (JIRA)" <ji...@apache.org> on 2019/02/13 17:36:00 UTC

[jira] [Created] (IMPALA-8196) IR UDFs should not allow importing symbols with hidden visibility

Tim Armstrong created IMPALA-8196:
-------------------------------------

             Summary: IR UDFs should not allow importing symbols with hidden visibility
                 Key: IMPALA-8196
                 URL: https://issues.apache.org/jira/browse/IMPALA-8196
             Project: IMPALA
          Issue Type: Improvement
          Components: Backend
    Affects Versions: Impala 3.1.0
            Reporter: Tim Armstrong


Discovered while working on IMPALA-8187, as part of which i'll add a test showing the behaviour

If an IR module has some hidden symbols in it, e.g. like the following, then we can actually create a UDF that calls the hidden symbol. This is inconsistent with the shared object UDFs.
{code}
; Function Attrs: norecurse nounwind uwtable
define hidden { i8, i64 } @_Z16UnexportedSymbolPN10impala_udf15FunctionContextE(%"class.impala_udf::FunctionContext"* nocapture readnone) local_unnamed_addr #3 {
  %2 = alloca %"struct.impala_udf::BigIntVal", align 8
  call void @_ZN10impala_udf9BigIntValC2El(%"struct.impala_udf::BigIntVal"* nonnull %2, i64 5)
  %3 = getelementptr inbounds %"struct.impala_udf::BigIntVal", %"struct.impala_udf::BigIntVal"* %2, i64 0, i32 0, i32 0
  %4 = load i8, i8* %3, align 8
  %5 = insertvalue { i8, i64 } undef, i8 %4, 0
  %6 = getelementptr inbounds %"struct.impala_udf::BigIntVal", %"struct.impala_udf::BigIntVal"* %2, i64 0, i32 1
  %7 = load i64, i64* %6, align 8
  %8 = insertvalue { i8, i64 } %5, i64 %7, 1
  ret { i8, i64 } %8
}
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)