PyPI / pygments / 2.21.0

pygments 2.21.0

Source
https://github.com/pygments/pygments
Tag scanned
2.21.0
Compared with
2.20.0 (1 signals introduced since)
Files
1454 scanned, 1336 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 98 warn · 267 info
Scan time
77.1 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): the 124 most severe of 222 warn and critical signals (124 with a verdict); 124 demoted to info. The rest are unreviewed.
Disclude version
4.1.0
Scanned (UTC)
2026-10-21 20:36

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  *)
    	    $echo "$modename: only absolute run-paths are allowed" 1>&2
    	    exit $EXIT_FAILURE
    	    ;;
  2. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	# FIXME: remove this flag sometime in the future.
    	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
    	continue
    	;;
  3. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
    	  $echo "$modename: more than one -exported-symbols argument is not allowed"
    	  exit $EXIT_FAILURE
    	fi
  4. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          -L*)
    	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
    	# We need an absolute path.
    	case $dir in
  5. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test -z "$absdir"; then
    	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
    	    absdir="$dir"
    	    notinst_path="$notinst_path $dir"
  6. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
    	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
    	  case :$dllsearchpath: in
    	  *":$dir:"*) ;;
  7. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	# to be aesthetically quoted because they are evaled later.
    	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    	case $arg in
    	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
  8. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  # in order for the loader to find any dlls it needs.
    	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
    	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
    	  fast_install=no
  9. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
    	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
    	  fast_install=no
    	  ;;
  10. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          -R*)
    	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
    	# We need an absolute path.
    	case $dir in
  11. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	*)
    	  $echo "$modename: only absolute run-paths are allowed" 1>&2
    	  exit $EXIT_FAILURE
    	  ;;
  12. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          -Wc,*)
    	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
    	arg=
    	save_ifs="$IFS"; IFS=','
  13. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	IFS="$save_ifs"
    	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
    	;;
  14. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          -Wl,*)
    	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
    	arg=
    	save_ifs="$IFS"; IFS=','
  15. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	IFS="$save_ifs"
    	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
    	;;
  16. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	# to be aesthetically quoted because they are evaled later.
    	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    	case $arg in
    	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
  17. `source` called with a dynamic path — sourcing a variable script path (ast pass, confidence 0.75)

    	  case $arg in
    	  */* | *\\*) . $arg ;;
    	  *) . ./$arg ;;
    	  esac
  18. `source` called with a dynamic path — sourcing a variable script path (ast pass, confidence 0.75)

    	  */* | *\\*) . $arg ;;
    	  *) . ./$arg ;;
    	  esac
  19. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	     test "$non_pic_object" = none; then
    	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
    	    exit $EXIT_FAILURE
    	  fi
  20. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  # Extract subdirectory from the argument.
    	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    	  if test "X$xdir" = "X$arg"; then
    	    xdir=
  21. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test -z "$run"; then
    	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
    	    exit $EXIT_FAILURE
    	  else
  22. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    # Extract subdirectory from the argument.
    	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    	    if test "X$xdir" = "X$arg"; then
    	      xdir=
  23. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    
    	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
    	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
    	    libobjs="$libobjs $pic_object"
  24. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
    	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
    	    libobjs="$libobjs $pic_object"
    	    non_pic_objects="$non_pic_objects $non_pic_object"
  25. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	# to be aesthetically quoted because they are evaled later.
    	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    	case $arg in
    	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
  26. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        if test -n "$prev"; then
          $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
          $echo "$help" 1>&2
          exit $EXIT_FAILURE
  27. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
          $echo "$help" 1>&2
          exit $EXIT_FAILURE
        fi
  28. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        # calculate the name of the file, without its directory
        outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
        libobjs_save="$libobjs"
  29. `eval` called on a string literal (ast pass, confidence 0.85)

          # get the directories listed in $shlibpath_var
          eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
        else
          shlib_search_path=
  30. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    
        output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
        if test "X$output_objdir" = "X$output"; then
          output_objdir="$objdir"
  31. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        "")
          $echo "$modename: you must specify an output file" 1>&2
          $echo "$help" 1>&2
          exit $EXIT_FAILURE
  32. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          $echo "$modename: you must specify an output file" 1>&2
          $echo "$help" 1>&2
          exit $EXIT_FAILURE
          ;;
  33. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  *)
    	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
    	    exit $EXIT_FAILURE
    	    ;;
  34. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test "$linkmode" != lib && test "$linkmode" != prog; then
    	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
    	    continue
    	  fi
  35. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  fi
    	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
    	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
    	    for search_ext in .la $std_shrext .so .a; do
  36. `source` called with a dynamic path — sourcing a variable script path (ast pass, confidence 0.75)

    		  case $lib in
    		  */* | *\\*) . $lib ;;
    		  *) . ./$lib ;;
    		  esac
  37. `source` called with a dynamic path — sourcing a variable script path (ast pass, confidence 0.75)

    		  */* | *\\*) . $lib ;;
    		  *) . ./$lib ;;
    		  esac
    		  for l in $old_library $library_names; do
  38. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    		    found=no
    		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
    		    test "X$ladir" = "X$lib" && ladir="."
    		    lib=$ladir/$old_library
  39. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    newdependency_libs="$deplib $newdependency_libs"
    	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
    	    ;;
    	  prog)
  40. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    fi
    	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
    	    ;;
    	  *)
  41. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  *)
    	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
    	    ;;
    	  esac # linkmode
  42. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test "$pass" = link; then
    	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
    	    # Make sure the xrpath contains only unique directories.
    	    case "$xrpath " in
  43. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    if test "$valid_a_lib" != yes; then
    	      $echo
    	      $echo "*** Warning: Trying to link with static lib archive $deplib."
    	      $echo "*** I have the capability to make that library automatically link in when"
  44. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      $echo
    	      $echo "*** Warning: Trying to link with static lib archive $deplib."
    	      $echo "*** I have the capability to make that library automatically link in when"
    	      $echo "*** you link to this library.  But I can only do this if you have a"
  45. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      $echo "*** Warning: Trying to link with static lib archive $deplib."
    	      $echo "*** I have the capability to make that library automatically link in when"
    	      $echo "*** you link to this library.  But I can only do this if you have a"
  46. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      $echo "*** I have the capability to make that library automatically link in when"
    	      $echo "*** you link to this library.  But I can only do this if you have a"
    	      $echo "*** shared version of the library, which you do not appear to have"
  47. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      $echo "*** you link to this library.  But I can only do this if you have a"
    	      $echo "*** shared version of the library, which you do not appear to have"
    	      $echo "*** because the file extensions .$libext of this argument makes me believe"
  48. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      $echo "*** shared version of the library, which you do not appear to have"
    	      $echo "*** because the file extensions .$libext of this argument makes me believe"
    	      $echo "*** that it is just a static archive that I should not used here."
    	    else
  49. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      $echo "*** because the file extensions .$libext of this argument makes me believe"
    	      $echo "*** that it is just a static archive that I should not used here."
    	    else
    	      $echo
  50. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    else
    	      $echo
    	      $echo "*** Warning: Linking the shared library $output against the"
    	      $echo "*** static library $deplib is not portable!"
  51. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      $echo
    	      $echo "*** Warning: Linking the shared library $output against the"
    	      $echo "*** static library $deplib is not portable!"
    	      deplibs="$deplib $deplibs"
  52. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      $echo "*** Warning: Linking the shared library $output against the"
    	      $echo "*** static library $deplib is not portable!"
    	      deplibs="$deplib $deplibs"
    	    fi
  53. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	else
    	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
    	  exit $EXIT_FAILURE
    	fi
  54. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	else
    	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
    	  exit $EXIT_FAILURE
    	fi
  55. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    
    	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
    	test "X$ladir" = "X$lib" && ladir="."
  56. `source` called with a dynamic path — sourcing a variable script path (ast pass, confidence 0.75)

    	case $lib in
    	*/* | *\\*) . $lib ;;
    	*) . ./$lib ;;
    	esac
  57. `source` called with a dynamic path — sourcing a variable script path (ast pass, confidence 0.75)

    	*/* | *\\*) . $lib ;;
    	*) . ./$lib ;;
    	esac
  58. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    if test -z "$old_library"; then
    	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
    	      exit $EXIT_FAILURE
    	    fi
  59. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
    	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
    	    exit $EXIT_FAILURE
    	  fi
  60. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	if test -z "$linklib"; then
    	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
    	  exit $EXIT_FAILURE
    	fi
  61. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test -z "$libdir"; then
    	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
    	    exit $EXIT_FAILURE
    	  fi
  62. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test -z "$abs_ladir"; then
    	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
    	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
    	    abs_ladir="$ladir"
  63. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
    	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
    	    abs_ladir="$ladir"
    	  fi
  64. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	esac
    	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
    
    	# Find the relevant object directory and library name.
  65. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
    	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
    	    dir="$ladir"
    	    absdir="$abs_ladir"
  66. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	fi # $installed = yes
    	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
    
    	# This library was specified with -dlpreopen.
  67. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test -z "$libdir"; then
    	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
    	    exit $EXIT_FAILURE
    	  fi
  68. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    case $deplib in
    	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
    	    esac
    	    # Need to link against all dependency_libs?
  69. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
    	    $echo
    	    if test "$linkmode" = prog; then
    	      $echo "*** Warning: Linking the executable $output against the loadable module"
  70. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    if test "$linkmode" = prog; then
    	      $echo "*** Warning: Linking the executable $output against the loadable module"
    	    else
    	      $echo "*** Warning: Linking the shared library $output against the loadable module"
  71. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    else
    	      $echo "*** Warning: Linking the shared library $output against the loadable module"
    	    fi
    	    $echo "*** $linklib is not portable!"
  72. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    fi
    	    $echo "*** $linklib is not portable!"
    	  fi
    	  if test "$linkmode" = lib &&
  73. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    soroot="$soname"
    	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
    	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
  74. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
    	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
    
    	    # If the library has no export list, then create one now
  75. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                          $EGREP ": [^:]* bundle" >/dev/null ; then
    		      $echo "** Warning, lib $linklib is a module, not a shared library"
    		      if test -z "$old_library" ; then
    		        $echo
  76. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    		      if test -z "$old_library" ; then
    		        $echo
    		        $echo "** And there doesn't seem to be a static archive available"
    		        $echo "** The link will probably fail, sorry"
  77. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    		        $echo
    		        $echo "** And there doesn't seem to be a static archive available"
    		        $echo "** The link will probably fail, sorry"
    		      else
  78. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    		        $echo "** And there doesn't seem to be a static archive available"
    		        $echo "** The link will probably fail, sorry"
    		      else
    		        add="$dir/$old_library"
  79. command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	    if test "$lib_linked" != yes; then
    	      $echo "$modename: configuration error: unsupported hardcode properties"
    	      exit $EXIT_FAILURE
    	    fi
  80. warn unicode-mixed-script tests/examplefiles/js/unicode.js:2:5

    identifier `sinθ` mixes scripts: Latin + Greek (raw pass, confidence 0.80)

    var école;
    var sinθ;
    var เมือง;
    var a\u1234b;
  81. warn unicode-mixed-script tests/snippets/bqn/test_inter_word.txt:2:2

    identifier `ab𝕊is` mixes scripts: Latin + Other (raw pass, confidence 0.80)

    ---input---
    {ab𝕊is: ab}
    
    ---tokens---
  82. identifier `α` contains homoglyph candidates: α (03B1)→a (raw pass, confidence 0.70)

    ---input---
    Check (α ≻ β).
    
    ---tokens---
  83. identifier `α` contains homoglyph candidates: α (03B1)→a (raw pass, confidence 0.70)

    '('           Operator
    'α'           Name
    ' '           Text
    '≻'           Name.Builtin.Pseudo
  84. [markup prose] `eval` called on a string literal (ast pass, confidence 0.85)

    'eval'        Name.Builtin
  85. base64-like blob (92 bytes over 2 lines, compression ratio 1.05) (raw pass, confidence 0.60)

     -----BEGIN PGP PUBLIC KEY BLOCK-----
     mDMEYCQjIxYJKwYBBAHaRw8BAQdAD/P5Nvvnvk66SxBBHDbhRml9ORg1WV5CvzKY
     snippedpgppublickey123456789
     -----END PGP PUBLIC KEY BLOCK-----
  86. base64-like blob (64 bytes, compression ratio 1.17) (raw pass, confidence 0.60)

    
    ' mDMEYCQjIxYJKwYBBAHaRw8BAQdAD/P5Nvvnvk66SxBBHDbhRml9ORg1WV5CvzKY\n' Text
    
    ' snippedpgppublickey123456789\n' Text
  87. identifier `Κόσμε` contains homoglyph candidates: Κ (039A)→K (raw pass, confidence 0.70)

    		"¡Hola Mundo!",
    		"Γειά σου Κόσμε!",
    		"Привіт, світе!",
    		"こんにちは世界!",
  88. warn unicode-mixed-script tests/snippets/hare/hello-world.txt:8:20

    identifier `Κόσμε` mixes scripts: Greek + Latin (raw pass, confidence 0.80)

    		"¡Hola Mundo!",
    		"Γειά σου Κόσμε!",
    		"Привіт, світе!",
    		"こんにちは世界!",
  89. identifier `Κόσμε` contains homoglyph candidates: Κ (039A)→K (raw pass, confidence 0.70)

    '"'           Literal.String
    'Γειά σου Κόσμε!' Literal.String
    '"'           Literal.String
    ','           Punctuation
  90. warn unicode-mixed-script tests/snippets/hare/hello-world.txt:63:18

    identifier `Κόσμε` mixes scripts: Greek + Latin (raw pass, confidence 0.80)

    '"'           Literal.String
    'Γειά σου Κόσμε!' Literal.String
    '"'           Literal.String
    ','           Punctuation
  91. line length 2560 characters (raw pass, confidence 0.65)

    '.ui-helper-hidden { display: none }\n.ui-helper-hidden { display: none }\n.ui-helper-hidden { display: none }\n.ui-helper-hidden { display: none }\n.ui-helper-hidden { display: none }\n.ui-helper-hidden { display: none }\n.ui-helper-hidden { display: none }\n.ui-helper-hidden { display: none }\n.ui-helper-hidden { dis
  92. warn unicode-mixed-script tests/snippets/julia/test_names.txt:20:1

    identifier `Aʺ` mixes scripts: Latin + Other (raw pass, confidence 0.80)

    ð # category Ll
    Aʺ # category Lm -- \U02BA (MODIFIER LETTER DOUBLE PRIME), not \U2033 (DOUBLE PRIME)
    א # category Lo
    Ð # category Lu
  93. warn unicode-mixed-script tests/snippets/julia/test_names.txt:90:2

    identifier `Aʺ` mixes scripts: Latin + Other (raw pass, confidence 0.80)

    
    'Aʺ'          Name
    ' '           Text.Whitespace
    '# category Lm -- \\U02BA (MODIFIER LETTER DOUBLE PRIME), not \\U2033 (DOUBLE PRIME)' Comment
  94. identifier `α` contains homoglyph candidates: α (03B1)→a (raw pass, confidence 0.70)

    :abc_def
    :α
    Val{:mysymbol}
  95. identifier `α` contains homoglyph candidates: α (03B1)→a (raw pass, confidence 0.70)

    
    ':α'          Literal.String.Symbol
    '\n'          Text.Whitespace
  96. line length 3025 characters (raw pass, confidence 0.65)

    "\n# sjfhasdkjfhsadlkjahl\n\nFile:The Last Supper - Leonardo Da Vinci - High Resolution 32x16.jpg|thumb|center|500px|alt=''The Last Supper'' by Leonardo da Vinci - Clickable Image|Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.\npoly 550 2550 750 2400 1150 2300
  97. warn decoder-decompress-payload tests/test_raw_token.py:19:12

    file imports decoder module(s) bz2, gzip and calls `.decompress()` — embedded payload decompressed at runtime (ast pass, confidence 0.75)

        raw_gz = highlight(code, PythonLexer(), RawTokenFormatter(compress="gz"))
        assert gzip.decompress(raw_gz) == raw
        assert highlight(raw_gz, RawTokenLexer(compress="gz"), RawTokenFormatter()) == raw
        assert (
  98. warn dynamic-execution tests/test_util.py:131:5

    `exec` called on a non-literal expression (ast pass, confidence 0.70)

        d = {}
        exec(output, d)
        assert isinstance(d['var'], tuple)
        assert ('cat', 'dog') == d['var']
  99. info warn → info by review dynamic-execution tests/examplefiles/bash/doif.sh:23:6 new in this release

    command name is a variable (`$num`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    num=15
    if [ $num -gt 10 ]; then
      echo "Number is greater than 10"
    else
    likely benign LLM, confidence 0.95 Bash syntax-highlighting sample using a variable in an if test.
    Reasoning

    Example file for syntax highlighting tests; $num is a shell test operand in the example's own conditional context, and the finding is a generic false positive on a sample lexer fixture.

  100. info critical → info by review dynamic-execution external/autopygmentize:149:5

    `exec` called with a dynamic (variable/substitution) path (ast pass, confidence 0.85)

    if [[ -n "$prereader" ]]; then
        exec $concat "$file" | $prereader | $reader
    else
        exec $concat "$file" | $reader
    likely benign LLM, confidence 0.80 A shell wrapper execs a variable-selected reader command in a pipeline over a user-supplied file.
    Reasoning

    The exec with an unquoted variable is in a wrapper that picks a reader or decompressor by file type, which is a common shell pattern for a formatting helper. The snippet shows no download, decode, or remote source, so it looks like a pipeline built from config-chosen tools.

  101. info dynamic-execution external/autopygmentize:149:28

    command name is a variable (`$prereader`) that this file sets only to plain text (ast pass, confidence 0.40)

    if [[ -n "$prereader" ]]; then
        exec $concat "$file" | $prereader | $reader
    else
        exec $concat "$file" | $reader
  102. info dynamic-execution external/autopygmentize:149:41

    command name is a variable (`$reader`) that this file sets only to plain text (ast pass, confidence 0.40)

    if [[ -n "$prereader" ]]; then
        exec $concat "$file" | $prereader | $reader
    else
        exec $concat "$file" | $reader
  103. info critical → info by review dynamic-execution external/autopygmentize:151:5

    `exec` called with a dynamic (variable/substitution) path (ast pass, confidence 0.85)

    else
        exec $concat "$file" | $reader
    fi
    likely benign LLM, confidence 0.80 The fallback branch of the autopygmentize wrapper execs a variable-selected reader on the input file.
    Reasoning

    This is the else branch of the same pipeline wrapper, selecting a reader command by file type. Nothing in the snippet is hidden or obfuscated.

  104. info dynamic-execution external/autopygmentize:151:28

    command name is a variable (`$reader`) that this file sets only to plain text (ast pass, confidence 0.40)

    else
        exec $concat "$file" | $reader
    fi
  105. info warn → info by review frame-introspection external/moin-parser.py:97:25

    `sys._getframe` — call-stack frame introspection (ast pass, confidence 0.70)

                try:
                    frame = sys._getframe(1)
                    filename = frame.f_locals['filename']
                except Exception:
    likely benign LLM, confidence 0.85 Retrieves the caller's filename from the stack frame inside a MoinMoin parser.
    Reasoning

    Reading the caller's frame locals to get a filename is a known way to find the calling context in a parser for error reporting or includes. It is not used to hide behaviour.

  106. info critical → info by review dynamic-import pygments/formatters/__init__.py:38:11

    `__import__` called on a non-literal expression (ast pass, confidence 0.70)

        """Load a formatter (and all others in the module too)."""
        mod = __import__(module_name, None, None, ['__all__'])
        for formatter_name in mod.__all__:
            cls = getattr(mod, formatter_name)
    likely benign LLM, confidence 0.90 Dynamically imports the built-in formatters module by name during formatter lookup.
    Reasoning

    This is Pygments' standard formatter loader, which imports a module built from its own internal module name and reads __all__. The name is not attacker-controlled in this code path.

  107. info warn → info by review dynamic-execution pygments/formatters/__init__.py:103:13

    `exec` called on a non-literal expression (ast pass, confidence 0.70)

            with open(filename, 'rb') as f:
                exec(f.read(), custom_namespace)
            # Retrieve the class `formattername` from that namespace
            if formattername not in custom_namespace:
    likely benign LLM, confidence 0.80 Executes a user-specified local Python file to load a custom formatter class.
    Reasoning

    This is Pygments' documented load-formatter-from-file feature, which runs a user-specified local file to define a custom class. It is powerful but is a designed capability and does not hide code.

  108. info critical → info by review dynamic-import pygments/lexers/__init__.py:45:11

    `__import__` called on a non-literal expression (ast pass, confidence 0.70)

        """Load a lexer (and all others in the module too)."""
        mod = __import__(module_name, None, None, ['__all__'])
        for lexer_name in mod.__all__:
            cls = getattr(mod, lexer_name)
    likely benign LLM, confidence 0.90 Dynamically imports the bundled lexers module by name during lexer lookup.
    Reasoning

    This is Pygments' standard lexer loader, importing its own bundled lexer module by name. Nothing here is attacker-controlled.

  109. info warn → info by review dynamic-execution pygments/lexers/__init__.py:154:13

    `exec` called on a non-literal expression (ast pass, confidence 0.70)

            with open(filename, 'rb') as f:
                exec(f.read(), custom_namespace)
            # Retrieve the class `lexername` from that namespace
            if lexername not in custom_namespace:
    likely benign LLM, confidence 0.80 Executes a user-specified local Python file to load a custom lexer class.
    Reasoning

    This matches the custom-lexer-from-file feature in Pygments, which executes a user-specified file to get a lexer class. It is a designed extension mechanism rather than hidden behaviour.

  110. info whitespace-anomaly pygments/lexers/_luau_builtins.py:2:1

    file mixes tab and space indentation (46 tab-indented and 5 space-indented lines) (raw pass, confidence 0.40)

    """
        pygments.lexers._luau_builtins
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  111. info warn → info by review dynamic-execution pygments/lexers/_mysql_builtins.py:1369:14

    `open(__file__)` — file reads its own source, common pattern for extracting payloads hidden in comments (ast pass, confidence 0.85)

    
            with open(__file__, encoding="utf-8") as f:
                data = f.read()
    likely benign LLM, confidence 0.85 Reads the module's own source file to process generated MySQL builtin tables.
    Reasoning

    This is a generated builtins data module that reads its own source to regenerate or inspect its tables. The snippet shows plain text reading with no decoding or execution of the extracted data.

  112. info warn → info by review dynamic-execution pygments/lexers/_mysql_builtins.py:1381:14

    `open(__file__)` — file reads its own source, common pattern for extracting payloads hidden in comments (ast pass, confidence 0.85)

    
            with open(__file__, 'w', encoding='utf-8', newline='\n') as f:
                f.write(data)
    likely benign LLM, confidence 0.85 Rewrites the module's own source file with regenerated MySQL builtin data.
    Reasoning

    The module rewrites its own source with generated data, which is the usual pattern for autogenerated Pygments tables. Nothing hidden or executed is written.

  113. info warn → info by review dynamic-execution pygments/lexers/_scilab_builtins.py:3082:10

    `open(__file__)` — file reads its own source, common pattern for extracting payloads hidden in comments (ast pass, confidence 0.85)

    
        with open(__file__, encoding='utf-8') as f:
            content = f.read()
    likely benign LLM, confidence 0.85 Reads the module's own source file as part of generated Scilab builtin tables.
    Reasoning

    This is a generated Scilab builtins module reading its own source. It matches the standard autogeneration pattern in Pygments.

  114. info warn → info by review dynamic-execution pygments/lexers/_scilab_builtins.py:3088:10

    `open(__file__)` — file reads its own source, common pattern for extracting payloads hidden in comments (ast pass, confidence 0.85)

    
        with open(__file__, 'w', encoding='utf-8') as f:
            f.write(header)
            f.write('# Autogenerated\n\n')
    likely benign LLM, confidence 0.85 Rewrites the module's own source with an autogenerated header for Scilab builtins.
    Reasoning

    The code writes a header and autogenerated marker into its own source file, which is a generator pattern. No payload or execution is present in the snippet.

  115. info unicode-mixed-script pygments/lexers/apl.py:62:25

    identifier `zΔ` mixes scripts: Latin + Greek (in string/comment) (raw pass, confidence 0.40)

                # following IBM APL2 standard
                (r'⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*', Name.Function),
                #
                # Labels
  116. info unicode-mixed-script pygments/lexers/apl.py:62:41

    identifier `zΔ` mixes scripts: Latin + Greek (in string/comment) (raw pass, confidence 0.40)

                # following IBM APL2 standard
                (r'⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*', Name.Function),
                #
                # Labels
  117. info unicode-mixed-script pygments/lexers/apl.py:67:24

    identifier `zΔ` mixes scripts: Latin + Greek (in string/comment) (raw pass, confidence 0.40)

                # following IBM APL2 standard
                # (r'[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*:', Name.Label),
                #
                # Variables
  118. info unicode-mixed-script pygments/lexers/apl.py:67:40

    identifier `zΔ` mixes scripts: Latin + Greek (in string/comment) (raw pass, confidence 0.40)

                # following IBM APL2 standard
                # (r'[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*:', Name.Label),
                #
                # Variables
  119. info unicode-mixed-script pygments/lexers/apl.py:72:22

    identifier `zΔ` mixes scripts: Latin + Greek (in string/comment) (raw pass, confidence 0.40)

                # following IBM APL2 standard (with a leading _ ok for GNU APL and Dyalog)
                (r'[A-Za-zΔ∆⍙_][A-Za-zΔ∆⍙_¯0-9]*', Name.Variable),     
                #
                # Numbers
  120. info unicode-mixed-script pygments/lexers/apl.py:72:39

    identifier `zΔ` mixes scripts: Latin + Greek (in string/comment) (raw pass, confidence 0.40)

                # following IBM APL2 standard (with a leading _ ok for GNU APL and Dyalog)
                (r'[A-Za-zΔ∆⍙_][A-Za-zΔ∆⍙_¯0-9]*', Name.Variable),     
                #
                # Numbers
  121. info unicode-homoglyph pygments/lexers/lean.py:32:29

    identifier `Zα` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

        _name_segment = (
            "(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
            "(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ])*")
        _name = _name_segment + r"(\." + _name_segment + r")*"
  122. info unicode-mixed-script pygments/lexers/lean.py:32:29

    identifier `Zα` mixes scripts: Latin + Greek (in string/comment) (raw pass, confidence 0.40)

        _name_segment = (
            "(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
            "(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ])*")
        _name = _name_segment + r"(\." + _name_segment + r")*"
  123. info unicode-homoglyph pygments/lexers/lean.py:33:32

    identifier `Zα` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

            "(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
            "(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ])*")
        _name = _name_segment + r"(\." + _name_segment + r")*"
  124. info unicode-mixed-script pygments/lexers/lean.py:33:32

    identifier `Zα` mixes scripts: Latin + Greek (in string/comment) (raw pass, confidence 0.40)

            "(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
            "(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ])*")
        _name = _name_segment + r"(\." + _name_segment + r")*"
  125. info unicode-homoglyph pygments/lexers/lean.py:149:29

    identifier `Zα` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

        _name_segment = (
            "(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
            "(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ!?])*")
        _name = _name_segment + r"(\." + _name_segment + r")*"
  126. info unicode-mixed-script pygments/lexers/lean.py:149:29

    identifier `Zα` mixes scripts: Latin + Greek (in string/comment) (raw pass, confidence 0.40)

        _name_segment = (
            "(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
            "(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ!?])*")
        _name = _name_segment + r"(\." + _name_segment + r")*"
  127. info unicode-homoglyph pygments/lexers/lean.py:150:32

    identifier `Zα` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

            "(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
            "(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ!?])*")
        _name = _name_segment + r"(\." + _name_segment + r")*"
  128. info unicode-mixed-script pygments/lexers/lean.py:150:32

    identifier `Zα` mixes scripts: Latin + Greek (in string/comment) (raw pass, confidence 0.40)

            "(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟]"
            "(?:(?![λΠΣ])[_a-zA-Zα-ωΑ-Ωϊ-ϻἀ-῾℀-⅏𝒜-𝖟0-9'ⁿ-₉ₐ-ₜᵢ-ᵪ!?])*")
        _name = _name_segment + r"(\." + _name_segment + r")*"
  129. info warn → info by review decoder-decompress-payload pygments/lexers/special.py:87:28

    file imports decoder module(s) gzip, bz2 and calls `.decompress()` — embedded payload decompressed at runtime (ast pass, confidence 0.75)

                        import gzip
                        text = gzip.decompress(text)
                    elif self.compress == 'bz2':
                        import bz2
    likely benign LLM, confidence 0.90 Decompresses gzip or bz2 input for the raw token lexer when the user selects that compression mode.
    Reasoning

    This is the Raw Token lexer, which decompresses gzip or bz2 input that the user explicitly selects as a compression option. Decompression of input data is the designed function, not a hidden payload.

  130. info unicode-homoglyph pygments/lexers/testing.py:31:374

    identifier `То` contains homoglyph candidates: Т (0422)→T, о (043E)→o (in string/comment) (raw pass, confidence 0.35)

    זי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |А
  131. info unicode-homoglyph pygments/lexers/testing.py:31:440

    identifier `Но` contains homoglyph candidates: Н (041D)→H, о (043E)→o (in string/comment) (raw pass, confidence 0.35)

    , що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Za
  132. info unicode-homoglyph pygments/lexers/testing.py:31:502

    identifier `К` contains homoglyph candidates: К (041A)→K (in string/comment) (raw pass, confidence 0.35)

    кин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know lik
  133. info unicode-homoglyph pygments/lexers/testing.py:31:608

    identifier `Ва` contains homoglyph candidates: В (0412)→B, а (0430)→a (in string/comment) (raw pass, confidence 0.35)

    сли |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y\'all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |T
  134. info unicode-homoglyph pygments/lexers/testing.py:31:662

    identifier `А` contains homoglyph candidates: А (0410)→A (in string/comment) (raw pass, confidence 0.35)

    к |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y\'all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y\'all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soi
  135. info critical → info by review dynamic-import pygments/sphinxext.py:161:19

    `__import__` called on a non-literal expression (ast pass, confidence 0.70)

                module = data[0]
                mod = __import__(module, None, None, [classname])
                self.filenames.add(mod.__file__)
                cls = getattr(mod, classname)
    likely benign LLM, confidence 0.85 Imports a lexer module named in the Sphinx configuration to collect its class for documentation.
    Reasoning

    The Sphinx extension imports lexer modules named in the documentation configuration in order to document them. This is intended behaviour for a docs tool.

  136. info critical → info by review dynamic-import pygments/sphinxext.py:221:19

    `__import__` called on a non-literal expression (ast pass, confidence 0.70)

                module = data[0]
                mod = __import__(module, None, None, [classname])
                self.filenames.add(mod.__file__)
                cls = getattr(mod, classname)
    likely benign LLM, confidence 0.85 Imports a configured lexer module during Sphinx documentation generation.
    Reasoning

    This is the same configuration-driven module import in the Sphinx extension's second code path, used to document lexers. Nothing indicates malicious intent.

  137. info critical → info by review dynamic-import pygments/styles/__init__.py:45:15

    `__import__` called on a non-literal expression (ast pass, confidence 0.70)

        try:
            mod = __import__(mod, None, None, [cls])
        except ImportError:
            raise ClassNotFound(f"Could not find style module {mod!r}" +
    likely benign LLM, confidence 0.90 Dynamically imports a Pygments style module by name during style lookup.
    Reasoning

    This is Pygments' standard style loader, importing a style module from the built-in list or a configured name and raising ClassNotFound on failure. It is ordinary plugin lookup.

  138. info high-complexity pygments/unistring.py:60:7

    compression ratio 0.629 is >2σ above file mean 0.384 (raw pass, confidence 0.50)

    
    Sc = '$\xa2-\xa5\u058f\u060b\u07fe-\u07ff\u09f2-\u09f3\u09fb\u0af1\u0bf9\u0e3f\u17db\u20a0-\u20bf\ua838\ufdfc\ufe69\uff04\uffe0-\uffe1\uffe5-\uffe6\U0001ecb0'
  139. info warn → info by review dynamic-attribute pygments/unistring.py:83:20

    reach-by-name through `globals` (ast pass, confidence 0.60)

    def combine(*args):
        return ''.join(globals()[cat] for cat in args)
    likely benign LLM, confidence 0.90 Joins module-level Unicode category strings selected by name from globals().
    Reasoning

    globals() lookup by category name over a fixed set of Unicode category string constants defined in the module; a common, benign way to build character class strings.

  140. info warn → info by review dynamic-attribute pygments/unistring.py:90:20

    reach-by-name through `globals` (ast pass, confidence 0.60)

            newcats.remove(arg)
        return ''.join(globals()[cat] for cat in newcats)
    likely benign LLM, confidence 0.90 Builds a combined Unicode character class from named module-level constants.
    Reasoning

    Same benign globals() lookup of Unicode category constants after removing excluded categories; no external input or execution.

  141. info warn → info by review dynamic-execution pygments/unistring.py:115:10

    `open(__file__)` — file reads its own source, common pattern for extracting payloads hidden in comments (ast pass, confidence 0.85)

    
        with open(__file__, encoding='utf-8') as fp:
            content = fp.read()
    likely benign LLM, confidence 0.85 Reads the module's own source file to rewrite or regenerate its Unicode tables.
    Reasoning

    The file reads its own source to regenerate data tables in a generator routine; this is a code-generation pattern, not payload extraction from comments in a malicious sense.

  142. info warn → info by review dynamic-execution pygments/unistring.py:139:10

    `open(__file__)` — file reads its own source, common pattern for extracting payloads hidden in comments (ast pass, confidence 0.85)

    
        with open(__file__, 'w', encoding='utf-8') as fp:
            fp.write(header)
    likely benign LLM, confidence 0.90 Writes a generated header to the module file during table regeneration.
    Reasoning

    Writes a generated header into the module's own file as part of a regeneration script; it is an ordinary generator write with no payload or network behavior.

  143. info warn → info by review dynamic-execution scripts/check_sources.py:53:9

    `compile` called on a non-literal expression (ast pass, confidence 0.70)

        try:
            compile('\n'.join(lines), fn, "exec")
        except SyntaxError as err:
            yield 0, f"not compilable: {err}"
    likely benign LLM, confidence 0.85 Compiles source file contents to detect syntax errors in a lint script.
    Reasoning

    compile() on lines of source files from the repository being checked for syntax errors; a standard linter check, not execution of untrusted payloads.

  144. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    # The name of this program:
    progname=`echo "$progpath" | $SED $basename`
    modename="$progname"
  145. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:72:15

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      :
    elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
      # Yippee, $echo works!
      :
    likely benign LLM, confidence 0.95 libtool shell script testing echo behavior via a variable command name.
    Reasoning

    Standard GNU libtool script fragment testing whether echo handles escapes; $echo is a configured command variable, typical of autotools scripts and a lexer example file.

  146. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:77:3

    `exec` called with a dynamic (variable/substitution) path (ast pass, confidence 0.85)

      # Restart under the correct shell, and then maybe $echo will work.
      exec $SHELL "$progpath" --no-reexec ${1+"$@"}
    fi
    likely benign LLM, confidence 0.85 libtool restarts itself under a better shell via exec.
    Reasoning

    Standard libtool re-exec under a correct shell using $SHELL and $progpath; a well-known legitimate autotools idiom in an example file, though exec with variable path is flagged by design.

  147. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:131:3

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
      $echo "$modename: not configured to build any kind of library" 1>&2
      $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
      exit $EXIT_FAILURE
    likely benign LLM, confidence 0.95 libtool prints configuration error messages via $echo.
    Reasoning

    Routine libtool error reporting through a configured $echo variable; benign autotools code in a lexer example file.

  148. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:132:3

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      $echo "$modename: not configured to build any kind of library" 1>&2
      $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
      exit $EXIT_FAILURE
    fi
    likely benign LLM, confidence 0.95 libtool prints fatal configuration error via $echo.
    Reasoning

    Same benign libtool error output through $echo in an example file.

  149. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:158:19

    command name is a variable (`$SHELL`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      # we can't tell.
      while (test "X"`$SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \
                 = "XX$testring") >/dev/null 2>&1 &&
              new_result=`expr "X$testring" : ".*" 2>&1` &&
    likely benign LLM, confidence 0.90 libtool probes whether the shell's echo works using $SHELL.
    Reasoning

    libtool's shell-detection loop running $SHELL on its own script with a fallback-echo flag; a legitimate, well-known autotools construct.

  150. command name is a variable (`$mkdir`) that this file sets only to plain text (ast pass, confidence 0.40)

    	umask 0077
    	$mkdir "$my_tmpdir"
    	umask $save_mktempdir_umask
          fi
  151. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:206:9

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          test -d "$my_tmpdir" || {
            $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
    	exit $EXIT_FAILURE
          }
    likely benign LLM, confidence 0.95 libtool reports failure to create a temporary directory.
    Reasoning

    Error message on temp directory creation failure via $echo in libtool; benign.

  152. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:211:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    
        $echo "X$my_tmpdir" | $Xsed
    }
    likely benign LLM, confidence 0.95 libtool echoes a temp directory path through sed.
    Reasoning

    Piping a benign echo of a temp directory name into sed in libtool; ordinary code.

  153. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    
        $echo "X$my_tmpdir" | $Xsed
    }
  154. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:230:8

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

      *ar\ archive*) # could be an import, or static
        if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
          $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
          win32_nmres=`eval $NM -f posix -A $1 | \
    likely benign LLM, confidence 0.85 libtool uses eval on objdump/nm tool variables to classify archive members.
    Reasoning

    libtool inspects object file format using eval on configured tool variables to detect Windows DLL imports; legitimate autotools logic, though eval on variables is a real pattern to note.

  155. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

      *ar\ archive*) # could be an import, or static
        if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
          $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
          win32_nmres=`eval $NM -f posix -A $1 | \
  156. command name is a variable (`$EGREP`) that this file sets only to plain text (ast pass, confidence 0.40)

        if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
          $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
          win32_nmres=`eval $NM -f posix -A $1 | \
    	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
  157. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:232:20

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

          $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
          win32_nmres=`eval $NM -f posix -A $1 | \
    	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
          case $win32_nmres in
    likely benign LLM, confidence 0.85 libtool runs nm via eval to detect Windows import libraries.
    Reasoning

    Same libtool eval of nm for win32 import detection; standard autotools code within an example file.

  158. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

          win32_nmres=`eval $NM -f posix -A $1 | \
    	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
          case $win32_nmres in
          import*)  win32_libid_type="x86 archive import";;
  159. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:251:3

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      esac
      $echo $win32_libid_type
    }
    likely benign LLM, confidence 0.90 Calls $echo, a libtool-configured variable holding the echo command, to print the win32 libid type.
    Reasoning

    This is the standard libtool ltmain.sh, a known autotools script in a test examples directory. $echo is a variable that libtool's configure step sets to the shell's echo command, so this is an ordinary idiom, not a dropper.

  160. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:276:31

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          # but not from the CC environment variable when configure was run.
          " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
          # Blanks at the start of $base_compile will cause this to fail
    likely benign LLM, confidence 0.90 Uses $echo inside a case pattern that matches compiler command strings.
    Reasoning

    Inside a case pattern list, $echo appears only in backtick command substitutions for matching compiler names. This is libtool's normal compiler-detection logic and the file is a legitimate libtool script.

  161. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:276:49

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          # but not from the CC environment variable when configure was run.
          " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
          # Blanks at the start of $base_compile will cause this to fail
    likely benign LLM, confidence 0.90 Uses $echo within a backtick pattern in libtool's compiler-matching case statement.
    Reasoning

    Same case-pattern construct from standard libtool compiler matching, with no execution of attacker-controlled input.

  162. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:276:102

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          # but not from the CC environment variable when configure was run.
          " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
          # Blanks at the start of $base_compile will cause this to fail
    likely benign LLM, confidence 0.90 Uses $echo within a backtick pattern in libtool's compiler-matching case statement.
    Reasoning

    Same case-pattern construct from standard libtool compiler matching; this is the known upstream code.

  163. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:276:127

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          # but not from the CC environment variable when configure was run.
          " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
          # Blanks at the start of $base_compile will cause this to fail
    likely benign LLM, confidence 0.90 Uses $echo within a backtick pattern in libtool's compiler-matching case statement.
    Reasoning

    Same case-pattern construct from standard libtool compiler matching; no hostile behavior is present.

  164. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:283:6

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

    	    # Evaluate the configuration.
    	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
    	    CC_quoted=
    	    for arg in $CC; do
    likely benign LLM, confidence 0.85 Evaluates the libtool configuration block extracted from the script itself via sed.
    Reasoning

    The eval runs sed output extracted from the script's own libtool TAG CONFIG section, which is the documented mechanism for loading per-tag configuration in libtool. The input is local to the script, not remote or encoded, so the critical severity overstates it.

  165. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    # Evaluate the configuration.
    	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
    	    CC_quoted=
    	    for arg in $CC; do
  166. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    # user sometimes does CC=<HOST>-gcc so we need to match that to 'gcc'
    	    trimedcc=`echo ${CC} | $SED -e "s/${host}-//g"`
    	    # and sometimes libtool has CC=<HOST>-gcc but user does CC=gcc
    	    extendcc=${host}-${CC}
  167. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:306:43

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      break ;;
    	      "$trimedcc "* | " $trimedcc "* | "`$echo $trimedcc` "* | " `$echo $trimedcc` "*|\
    	      "$extendcc "* | " $extendcc "* | "`$echo $extendcc` "* | " `$echo $extendcc` "*|\
    	      "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
    likely benign LLM, confidence 0.90 Uses $echo in backtick patterns matching trimmed and munged compiler names.
    Reasoning

    Case-pattern matching of compiler strings using $echo inside backticks, standard in libtool's compiler-detection code.

  168. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:306:68

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      break ;;
    	      "$trimedcc "* | " $trimedcc "* | "`$echo $trimedcc` "* | " `$echo $trimedcc` "*|\
    	      "$extendcc "* | " $extendcc "* | "`$echo $extendcc` "* | " `$echo $extendcc` "*|\
    	      "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
    likely benign LLM, confidence 0.90 Uses $echo in backtick patterns matching trimmed and munged compiler names.
    Reasoning

    Same libtool compiler-detection case patterns; no untrusted input is executed.

  169. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:307:43

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      "$trimedcc "* | " $trimedcc "* | "`$echo $trimedcc` "* | " `$echo $trimedcc` "*|\
    	      "$extendcc "* | " $extendcc "* | "`$echo $extendcc` "* | " `$echo $extendcc` "*|\
    	      "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
    likely benign LLM, confidence 0.90 Uses $echo in backtick patterns matching extended compiler names.
    Reasoning

    Same libtool compiler-detection case patterns, a legitimate autotools construct.

  170. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:307:68

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      "$trimedcc "* | " $trimedcc "* | "`$echo $trimedcc` "* | " `$echo $trimedcc` "*|\
    	      "$extendcc "* | " $extendcc "* | "`$echo $extendcc` "* | " `$echo $extendcc` "*|\
    	      "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
    likely benign LLM, confidence 0.90 Uses $echo in backtick patterns matching extended compiler names.
    Reasoning

    Same libtool compiler-detection case patterns, a legitimate autotools construct.

  171. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:308:43

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
    	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
    	      # The compiler in the base compile command matches
    likely benign LLM, confidence 0.90 Uses $echo in backtick patterns matching munged and CC compiler names.
    Reasoning

    Same libtool compiler-detection case patterns, a legitimate autotools construct.

  172. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:308:68

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
    	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
    	      # The compiler in the base compile command matches
    likely benign LLM, confidence 0.95 Libtool script using $echo as a configured command name inside a case pattern.
    Reasoning

    This is the standard GNU libtool script, where $echo is a variable set at configure time to a shell echo command. The flagged construct is a case pattern match on compiler names, not dynamic execution of attacker-controlled content.

  173. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:309:32

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
    	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
    	      # The compiler in the base compile command matches
    likely benign LLM, confidence 0.95 Libtool case pattern referencing $echo for compiler-name matching.
    Reasoning

    Same libtool case-pattern context; $echo is a configured echo variable, and the pattern only matches compiler command strings.

  174. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:309:50

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
    	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
    	      # The compiler in the base compile command matches
    likely benign LLM, confidence 0.95 Libtool case pattern referencing $echo for compiler-name matching.
    Reasoning

    Same benign libtool case-pattern construct with $echo as a configured variable.

  175. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:309:103

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
    	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
    	      # The compiler in the base compile command matches
    likely benign LLM, confidence 0.95 Libtool case pattern referencing $echo for compiler-name matching.
    Reasoning

    Same benign libtool case-pattern construct with $echo as a configured variable.

  176. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:309:128

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	      "$mungedcc "* | " $mungedcc "* | "`$echo $mungedcc` "* | " `$echo $mungedcc` "*|\
    	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
    	      # The compiler in the base compile command matches
    likely benign LLM, confidence 0.95 Libtool case pattern referencing $echo for compiler-name matching.
    Reasoning

    Same benign libtool case-pattern construct with $echo as a configured variable.

  177. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:323:4

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	if test -z "$tagname"; then
    	  $echo "$modename: unable to infer tagged configuration"
    	  $echo "$modename: specify a tag with \`--tag'" 1>&2
    	  exit $EXIT_FAILURE
    likely benign LLM, confidence 0.95 Libtool error message printed via configured $echo variable.
    Reasoning

    $echo is the libtool-configured echo command used to print error messages; this is ordinary script output, not malicious execution.

  178. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:324:4

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  $echo "$modename: unable to infer tagged configuration"
    	  $echo "$modename: specify a tag with \`--tag'" 1>&2
    	  exit $EXIT_FAILURE
    #        else
    likely benign LLM, confidence 0.95 Libtool error message printed via configured $echo variable.
    Reasoning

    Ordinary libtool error output via configured $echo variable.

  179. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

    
        $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
        $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
        if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
  180. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

        $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
        $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
        if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
         :
  181. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:343:9

    command name is a variable (`$AR`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
        if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
         :
        else
    likely benign LLM, confidence 0.93 Archiver variable $AR invoked to list archive members during libtool processing.
    Reasoning

    $AR is the configured archiver (ar) used to test archive contents; standard libtool build logic.

  182. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:346:7

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        else
          $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
          exit $EXIT_FAILURE
        fi
    likely benign LLM, confidence 0.95 Libtool error message on object name conflict via $echo.
    Reasoning

    Standard libtool error reporting via $echo on an object name conflict.

  183. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

    
        $show "${rm}r $my_gentop"
        $run ${rm}r "$my_gentop"
        $show "$mkdir $my_gentop"
  184. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

        $show "${rm}r $my_gentop"
        $run ${rm}r "$my_gentop"
        $show "$mkdir $my_gentop"
        $run $mkdir "$my_gentop"
  185. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

        $run ${rm}r "$my_gentop"
        $show "$mkdir $my_gentop"
        $run $mkdir "$my_gentop"
        my_status=$?
  186. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

        $show "$mkdir $my_gentop"
        $run $mkdir "$my_gentop"
        my_status=$?
        if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
  187. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:377:16

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          esac
          my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
          my_xdir="$my_gentop/$my_xlib"
    likely benign LLM, confidence 0.95 Libtool basename extraction via configured $echo and $Xsed.
    Reasoning

    Standard libtool command substitution using $echo and $Xsed to strip directory components from a library name.

  188. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

          esac
          my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
          my_xdir="$my_gentop/$my_xlib"
  189. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

    
          $show "${rm}r $my_xdir"
          $run ${rm}r "$my_xdir"
          $show "$mkdir $my_xdir"
  190. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

          $show "${rm}r $my_xdir"
          $run ${rm}r "$my_xdir"
          $show "$mkdir $my_xdir"
          $run $mkdir "$my_xdir"
  191. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

          $run ${rm}r "$my_xdir"
          $show "$mkdir $my_xdir"
          $run $mkdir "$my_xdir"
          exit_status=$?
  192. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

          $show "$mkdir $my_xdir"
          $run $mkdir "$my_xdir"
          exit_status=$?
          if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
  193. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

          *-darwin*)
    	$show "Extracting $my_xabs"
    	# Do not bother doing anything if just a dry run
    	if test -z "$run"; then
  194. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:397:25

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  darwin_curdir=`pwd`
    	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
    	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
    	  if test -n "$darwin_arches"; then 
    likely benign LLM, confidence 0.95 Libtool Darwin archive handling using configured command variables.
    Reasoning

    Standard Darwin archive handling in libtool using configured $echo and $EGREP to inspect architectures.

  195. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	  darwin_curdir=`pwd`
    	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
    	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
    	  if test -n "$darwin_arches"; then 
  196. command name is a variable (`$EGREP`) that this file sets only to plain text (ast pass, confidence 0.40)

    	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
    	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
    	  if test -n "$darwin_arches"; then 
    	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
  197. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    	  if test -n "$darwin_arches"; then 
    	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
    	    darwin_arch=
    	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
  198. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    darwin_arch=
    	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
    	    for darwin_arch in  $darwin_arches ; do
    	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
  199. command name is a variable (`$rm`) that this file sets only to plain text (ast pass, confidence 0.40)

    	      cd "$darwin_curdir"
    	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
    	    done # $darwin_arches
          ## Okay now we have a bunch of thin objects, gotta fatten them up :)
  200. command name is a variable (`$NL2SP`) that this file sets only to plain text (ast pass, confidence 0.40)

          ## Okay now we have a bunch of thin objects, gotta fatten them up :)
    	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
    	    darwin_file=
    	    darwin_files=
  201. command name is a variable (`$NL2SP`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    for darwin_file in $darwin_filelist; do
    	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
    	      lipo -create -output "$darwin_file" $darwin_files
    	    done # $darwin_filelist
  202. command name is a variable (`$rm`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    done # $darwin_filelist
    	    ${rm}r unfat-$$
    	    cd "$darwin_orig_dir"
    	  else
  203. command name is a variable (`$NL2SP`) that this file sets only to plain text (ast pass, confidence 0.40)

          esac
          my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
        done
        func_extract_archives_result="$my_oldobjs"
  204. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:439:1

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

    # Darwin sucks
    eval std_shrext=\"$shrext_cmds\"
    
    disable_libs=no
    likely benign LLM, confidence 0.93 Libtool eval of configure-generated shrext_cmds to set the shared library extension.
    Reasoning

    The eval evaluates $shrext_cmds, a configure-time shell-extension variable in the libtool script itself. This is a known, benign libtool pattern, though eval of variables is a generic risk.

  205. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:450:17

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      case $arg in
      -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
      *) optarg= ;;
      esac
    likely benign LLM, confidence 0.90 Command substitution calling the configurable $echo variable to strip an option prefix.
    Reasoning

    This is GNU libtool's ltmain.sh, a well-known legitimate build script; $echo is a configured variable set by the build system, and the command is a standard parameter-expansion pattern used to echo text. Not malicious.

  206. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

      case $arg in
      -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
      *) optarg= ;;
      esac
  207. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:467:2

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          *[!-_A-Za-z0-9,/]*)
    	$echo "$progname: invalid tag name: $tagname" 1>&2
    	exit $EXIT_FAILURE
    	;;
    likely benign LLM, confidence 0.90 Prints an invalid tag name error using $echo then exits.
    Reasoning

    Standard libtool usage printing an error message via the configurable $echo variable before exiting; legitimate build script code.

  208. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:481:4

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

    	  # Evaluate the configuration.
    	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
    	else
    	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
    likely benign LLM, confidence 0.85 eval of sed-extracted libtool tag configuration block.
    Reasoning

    The eval evaluates a tag configuration block extracted from the libtool script itself via sed, which is the documented mechanism of libtool for loading tag configs. It is dynamic but the source is the local script file, a known legitimate pattern in autotools output.

  209. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    	  # Evaluate the configuration.
    	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
    	else
    	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
  210. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:483:4

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	else
    	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
    	fi
    	;;
    likely benign LLM, confidence 0.90 Reports an unknown libtool tag via $echo.
    Reasoning

    Error message output via configurable $echo in libtool's tag handling; benign.

  211. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:489:7

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

        *)
          eval "$prev=\$arg"
          ;;
        esac
    likely benign LLM, confidence 0.85 eval used to assign parsed command-line argument to a dynamically named variable.
    Reasoning

    eval assigning an argument to a variable name stored in $prev is a common option-parsing idiom in libtool. The values come from the command line of the build tool itself, a local-use pattern rather than an attack.

  212. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:505:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      --version)
        $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
        $echo
        $echo "Copyright (C) 2005  Free Software Foundation, Inc."
    likely benign LLM, confidence 0.90 Prints version information using $echo.
    Reasoning

    Version output via $echo in libtool's --version handler; ordinary behavior.

  213. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:506:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
        $echo
        $echo "Copyright (C) 2005  Free Software Foundation, Inc."
        $echo "This is free software; see the source for copying conditions.  There is NO"
    likely benign LLM, confidence 0.90 Prints copyright notice using $echo.
    Reasoning

    Prints copyright text via $echo in libtool's version handler; benign.

  214. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:507:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        $echo
        $echo "Copyright (C) 2005  Free Software Foundation, Inc."
        $echo "This is free software; see the source for copying conditions.  There is NO"
        $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
    likely benign LLM, confidence 0.90 Prints license text using $echo.
    Reasoning

    Prints blank line/license text via $echo; benign.

  215. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:508:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        $echo "Copyright (C) 2005  Free Software Foundation, Inc."
        $echo "This is free software; see the source for copying conditions.  There is NO"
        $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
        exit $?
    likely benign LLM, confidence 0.90 Prints warranty text and exits.
    Reasoning

    Prints license warranty text and exits via $echo; benign.

  216. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:509:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        $echo "This is free software; see the source for copying conditions.  There is NO"
        $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
        exit $?
        ;;
    likely benign LLM, confidence 0.90 Prints license text via $echo in option handling.
    Reasoning

    Prints license text in the version handler; benign.

  217. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

      --config)
        ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
        # Now print the configurations for the tags.
        for tagname in $taglist; do
  218. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

        for tagname in $taglist; do
          ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
        done
        exit $?
  219. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:523:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      --debug)
        $echo "$progname: enabling shell trace mode"
        set -x
        preserve_args="$preserve_args $arg"
    likely benign LLM, confidence 0.90 Handles --debug by enabling shell tracing.
    Reasoning

    Debug option enabling shell trace with set -x; ordinary libtool option handling.

  220. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:533:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      --features)
        $echo "host: $host"
        if test "$build_libtool_libs" = yes; then
          $echo "enable shared libraries"
    likely benign LLM, confidence 0.90 Prints libtool build features using $echo.
    Reasoning

    Prints host and feature info via $echo in libtool's --features handler; benign.

  221. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:535:7

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        if test "$build_libtool_libs" = yes; then
          $echo "enable shared libraries"
        else
          $echo "disable shared libraries"
    likely benign LLM, confidence 0.90 Prints whether shared libraries are enabled.
    Reasoning

    Conditional informational output of shared library status via $echo; benign.

  222. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:537:7

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        else
          $echo "disable shared libraries"
        fi
        if test "$build_old_libs" = yes; then
    likely benign LLM, confidence 0.93 Libtool script calling its configured $echo variable to print status messages.
    Reasoning

    This is the standard libtool ltmain.sh script, where $echo is a variable set by configure to the echo command. The pattern is a normal shell idiom for portability and this is a test example file, not an attack.

  223. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:540:7

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        if test "$build_old_libs" = yes; then
          $echo "enable static libraries"
        else
          $echo "disable static libraries"
    likely benign LLM, confidence 0.93 Libtool status message printed via $echo variable.
    Reasoning

    Same libtool $echo idiom printing build status; a legitimate, well-known pattern in autotools-generated scripts.

  224. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:542:7

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        else
          $echo "disable static libraries"
        fi
        exit $?
    likely benign LLM, confidence 0.93 Libtool status message printed via $echo variable.
    Reasoning

    Standard libtool $echo usage for reporting static library configuration; benign.

  225. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:577:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      -*)
        $echo "$modename: unrecognized option \`$arg'" 1>&2
        $echo "$help" 1>&2
        exit $EXIT_FAILURE
    likely benign LLM, confidence 0.93 Libtool error output for unrecognized option via $echo.
    Reasoning

    Error message output through $echo in libtool option parsing; benign portability idiom.

  226. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:578:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        $echo "$modename: unrecognized option \`$arg'" 1>&2
        $echo "$help" 1>&2
        exit $EXIT_FAILURE
        ;;
    likely benign LLM, confidence 0.93 Libtool help output via $echo variable.
    Reasoning

    Printing help text to stderr via $echo in libtool; benign.

  227. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:590:3

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    if test -n "$prevopt"; then
      $echo "$modename: option \`$prevopt' requires an argument" 1>&2
      $echo "$help" 1>&2
      exit $EXIT_FAILURE
    likely benign LLM, confidence 0.93 Libtool error for option missing its argument.
    Reasoning

    Libtool reports missing option argument via $echo before exiting; benign.

  228. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:591:3

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      $echo "$modename: option \`$prevopt' requires an argument" 1>&2
      $echo "$help" 1>&2
      exit $EXIT_FAILURE
    fi
    likely benign LLM, confidence 0.93 Libtool error and help output via $echo.
    Reasoning

    Libtool help and exit after missing argument error; benign.

  229. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:616:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      if test -z "$mode"; then
        $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
        $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
        case $nonopt in
    likely benign LLM, confidence 0.93 Libtool deprecation warning via $echo.
    Reasoning

    Libtool deprecation warning printed via $echo; benign.

  230. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:617:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
        $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
        case $nonopt in
        *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
    likely benign LLM, confidence 0.93 Libtool warning about mode inference via $echo.
    Reasoning

    Libtool mode-inference warning via $echo; benign.

  231. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:647:4

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	if test -n "$nonopt"; then
    	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
    	else
    	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
    likely benign LLM, confidence 0.93 Libtool mode-inference warning via $echo.
    Reasoning

    Libtool warning about inability to infer mode, printed via $echo; benign.

  232. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:649:4

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	else
    	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
    	fi
          fi
    likely benign LLM, confidence 0.93 Libtool warning message via $echo.
    Reasoning

    Libtool warning message via $echo; benign.

  233. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:658:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

      if test -n "$execute_dlfiles" && test "$mode" != execute; then
        $echo "$modename: unrecognized option \`-dlopen'" 1>&2
        $echo "$help" 1>&2
        exit $EXIT_FAILURE
    likely benign LLM, confidence 0.93 Libtool error for unsupported -dlopen via $echo.
    Reasoning

    Libtool error on unrecognized -dlopen option via $echo; benign.

  234. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:659:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        $echo "$modename: unrecognized option \`-dlopen'" 1>&2
        $echo "$help" 1>&2
        exit $EXIT_FAILURE
      fi
    likely benign LLM, confidence 0.93 Libtool error output via $echo.
    Reasoning

    Libtool help and exit after -dlopen error via $echo; benign.

  235. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:701:6

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test -n "$libobj" ; then
    	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
    	    exit $EXIT_FAILURE
    	  fi
    likely benign LLM, confidence 0.93 Libtool duplicate -o option error via $echo.
    Reasoning

    Libtool error for duplicate -o option via $echo; benign.

  236. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:724:10

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	-Wc,*)
    	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
    	  lastarg=
    	  save_ifs="$IFS"; IFS=','
    likely benign LLM, confidence 0.92 Backtick command substitution using the libtool $echo variable to process an argument.
    Reasoning

    $echo is a standard libtool shell variable, set to echo near the top of ltmain.sh. The pattern is ordinary libtool shell and the file is a bash example, so this is a benign variable command name.

  237. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	-Wc,*)
    	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
    	  lastarg=
    	  save_ifs="$IFS"; IFS=','
  238. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:741:13

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  IFS="$save_ifs"
    	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
    
    	  # Add the arguments to base_compile.
    likely benign LLM, confidence 0.92 Backtick substitution piping $lastarg through $Xsed using the libtool $echo variable.
    Reasoning

    Same libtool idiom: $echo is the portable echo variable defined by libtool's configuration. Nothing here fetches or runs external code.

  239. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	  IFS="$save_ifs"
    	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
    
    	  # Add the arguments to base_compile.
  240. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:760:16

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          # Aesthetically quote the previous argument.
          lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
    
          case $lastarg in
    likely benign LLM, confidence 0.92 Aesthetic quoting of the previous argument via $echo and $Xsed.
    Reasoning

    Standard libtool argument quoting with $echo and $Xsed. The flagged pattern is the variable command name, which libtool always defines.

  241. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

          # Aesthetically quote the previous argument.
          lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
    
          case $lastarg in
  242. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:779:7

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        arg)
          $echo "$modename: you must specify an argument for -Xcompile"
          exit $EXIT_FAILURE
          ;;
    likely benign LLM, confidence 0.93 Error message printed with $echo when -Xcompile lacks an argument.
    Reasoning

    $echo here prints an error message before exit. This is ordinary libtool error reporting, not an execution hazard.

  243. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:783:7

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        target)
          $echo "$modename: you must specify a target with \`-o'" 1>&2
          exit $EXIT_FAILURE
          ;;
    likely benign LLM, confidence 0.93 Error message printed with $echo when no -o target is given.
    Reasoning

    $echo prints a usage error to stderr before exiting, which is standard libtool option handling.

  244. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:788:35

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          # Get the name of the library object.
          [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
          ;;
        esac
    likely benign LLM, confidence 0.92 Strips the directory from the source file name to get the library object name.
    Reasoning

    Derives the library object name by stripping the directory with $echo and $Xsed. This is ordinary path manipulation in libtool.

  245. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

          # Get the name of the library object.
          [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
          ;;
        esac
  246. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:811:13

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    
        libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
    
        case $libobj in
    likely benign LLM, confidence 0.92 Converts the libobj suffix to .lo using $echo and $Xsed.
    Reasoning

    Rewrites the .lo suffix via $echo and $Xsed, the usual libtool object-name transformation.

  247. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    
        libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
    
        case $libobj in
  248. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:814:16

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        case $libobj in
        *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
        *)
          $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
    likely benign LLM, confidence 0.93 Object name derivation with a fallback error message through $echo.
    Reasoning

    Standard libtool handling of the object name. The $echo here is only used to report an error on the unknown-suffix path.

  249. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

        case $libobj in
        *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
        *)
          $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
  250. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:816:7

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        *)
          $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
          exit $EXIT_FAILURE
          ;;
    likely benign LLM, confidence 0.93 Error message printed via $echo before exiting on an invalid library object name.
    Reasoning

    Error message and exit for an undeterminable library object name. Ordinary libtool error handling.

  251. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:842:14

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    
        qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
        case $qlibobj in
          *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
    likely benign LLM, confidence 0.92 Shell-quotes the library object name using $echo and $Xsed.
    Reasoning

    Quotes libobj for safe shell use via $echo and $Xsed, which is a defensive step in libtool.

  252. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    
        qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
        case $qlibobj in
          *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
  253. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:848:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        test "X$libobj" != "X$qlibobj" \
    	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
    	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
        objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
    likely benign LLM, confidence 0.92 Checks the library object name for shell special characters and reports if found.
    Reasoning

    Validates libobj for shell special characters using $echo and grep, then reports an error. This is input validation, not an attack.

  254. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:849:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
    	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
        objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
        xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
    likely benign LLM, confidence 0.92 Prints the shell-special-character error for the library object name.
    Reasoning

    Same validation chain as the neighboring line, with the error message printed through $echo. Ordinary libtool.

  255. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:850:14

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
        objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
        xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
        if test "X$xdir" = "X$obj"; then
    likely benign LLM, confidence 0.92 Derives objname and xdir from the object path using $echo and $Xsed.
    Reasoning

    Extracts the object name and directory with $echo and $Xsed as part of normal libtool path handling.

  256. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
        objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
        xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
        if test "X$xdir" = "X$obj"; then
  257. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:851:11

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
        xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
        if test "X$xdir" = "X$obj"; then
          xdir=
    likely benign LLM, confidence 0.90 Variable-named echo command used in libtool's ltmain.sh string processing.
    Reasoning

    This is the standard libtool idiom where $echo is a configured variable holding the echo command; it is a test example file from a syntax highlighter repo, not an attack.

  258. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

        objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
        xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
        if test "X$xdir" = "X$obj"; then
          xdir=
  259. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:860:7

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        if test -z "$base_compile"; then
          $echo "$modename: you must specify a compilation command" 1>&2
          $echo "$help" 1>&2
          exit $EXIT_FAILURE
    likely benign LLM, confidence 0.90 Error message printed through the $echo variable in libtool.
    Reasoning

    Standard libtool error reporting via configured $echo variable; benign build-script pattern.

  260. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:861:7

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          $echo "$modename: you must specify a compilation command" 1>&2
          $echo "$help" 1>&2
          exit $EXIT_FAILURE
        fi
    likely benign LLM, confidence 0.90 Printing help text via $echo before exit in libtool.
    Reasoning

    Same benign libtool $echo usage for printing help and exiting.

  261. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    
        $run $rm $removelist
        trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
  262. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:889:19

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        if test "$compiler_c_o" = no; then
          output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
          lockfile="$output_obj.lock"
          removelist="$removelist $output_obj $lockfile"
    likely benign LLM, confidence 0.90 Computes output object filename via $echo pipeline.
    Reasoning

    Benign libtool object-name derivation using $echo and sed; $echo is a configured echo command.

  263. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

        if test "$compiler_c_o" = no; then
          output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
          lockfile="$output_obj.lock"
          removelist="$removelist $output_obj $lockfile"
  264. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

        if test "$need_locks" = yes; then
          until $run ln "$srcfile" "$lockfile" 2>/dev/null; do
    	$show "Waiting for $lockfile to be removed"
    	sleep 2
  265. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

          until $run ln "$srcfile" "$lockfile" 2>/dev/null; do
    	$show "Waiting for $lockfile to be removed"
    	sleep 2
          done
  266. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:908:2

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          if test -f "$lockfile"; then
    	$echo "\
    *** ERROR, $lockfile exists and contains:
    `cat $lockfile 2>/dev/null`
    likely benign LLM, confidence 0.90 Prints lock file error via $echo.
    Reasoning

    Standard libtool lockfile error reporting; benign.

  267. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    
    	$run $rm $removelist
    	exit $EXIT_FAILURE
          fi
  268. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:922:7

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          fi
          $echo "$srcfile" > "$lockfile"
        fi
    likely benign LLM, confidence 0.90 Writes lockfile contents via $echo.
    Reasoning

    Writes source name into a lock file using $echo; standard libtool locking logic.

  269. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:926:7

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

        if test -n "$fix_srcfile_path"; then
          eval srcfile=\"$fix_srcfile_path\"
        fi
        qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
    likely benign LLM, confidence 0.85 eval assigns srcfile from fix_srcfile_path in libtool.
    Reasoning

    eval on a path variable is a known pattern in libtool for fixing source paths; it is a test example file, though eval of untrusted input is a real hazard in general.

  270. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:928:15

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

        fi
        qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
        case $qsrcfile in
          *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
    likely benign LLM, confidence 0.90 Shell-quotes source filename via $echo and $Xsed.
    Reasoning

    Benign libtool quoting pipeline using configured $echo and $Xsed.

  271. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

        fi
        qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
        case $qsrcfile in
          *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
  272. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    
        $run $rm "$libobj" "${libobj}T"
    
        # Create a libtool object file (analogous to a ".la" file),
  273. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

          if test ! -d "${xdir}$objdir"; then
    	$show "$mkdir ${xdir}$objdir"
    	$run $mkdir ${xdir}$objdir
    	exit_status=$?
  274. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    	$show "$mkdir ${xdir}$objdir"
    	$run $mkdir ${xdir}$objdir
    	exit_status=$?
    	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
  275. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    
          $run $rm "$lobj" "$output_obj"
    
          $show "$command"
  276. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

    
          $show "$command"
          if $run eval "$command"; then :
          else
  277. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

          $show "$command"
          if $run eval "$command"; then :
          else
    	test -n "$output_obj" && $run $rm $removelist
  278. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

          else
    	test -n "$output_obj" && $run $rm $removelist
    	exit $EXIT_FAILURE
          fi
  279. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:985:2

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
    	$echo "\
    *** ERROR, $lockfile contains:
    `cat $lockfile 2>/dev/null`
    likely benign LLM, confidence 0.90 Prints lockfile conflict error via $echo.
    Reasoning

    Standard libtool lockfile conflict message; benign.

  280. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    
    	$run $rm $removelist
    	exit $EXIT_FAILURE
          fi
  281. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

          if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
    	$show "$mv $output_obj $lobj"
    	if $run $mv $output_obj $lobj; then :
    	else
  282. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    	$show "$mv $output_obj $lobj"
    	if $run $mv $output_obj $lobj; then :
    	else
    	  error=$?
  283. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    	  error=$?
    	  $run $rm $removelist
    	  exit $error
    	fi
  284. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

          command="$command$suppress_output"
          $run $rm "$obj" "$output_obj"
          $show "$command"
          if $run eval "$command"; then :
  285. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

          $run $rm "$obj" "$output_obj"
          $show "$command"
          if $run eval "$command"; then :
          else
  286. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

          $show "$command"
          if $run eval "$command"; then :
          else
    	$run $rm $removelist
  287. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

          else
    	$run $rm $removelist
    	exit $EXIT_FAILURE
          fi
  288. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1057:2

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
    	$echo "\
    *** ERROR, $lockfile contains:
    `cat $lockfile 2>/dev/null`
    likely benign LLM, confidence 0.90 Prints lockfile conflict error via $echo.
    Reasoning

    Same benign libtool lockfile error reporting.

  289. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    
    	$run $rm $removelist
    	exit $EXIT_FAILURE
          fi
  290. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

          if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
    	$show "$mv $output_obj $obj"
    	if $run $mv $output_obj $obj; then :
    	else
  291. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    	$show "$mv $output_obj $obj"
    	if $run $mv $output_obj $obj; then :
    	else
    	  error=$?
  292. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    	  error=$?
    	  $run $rm $removelist
    	  exit $error
    	fi
  293. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    
        $run $mv "${libobj}T" "${libobj}"
    
        # Unlock the critical section if it was locked
  294. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

        if test "$need_locks" != no; then
          $run $rm "$lockfile"
        fi
  295. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1192:6

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
    	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
    	  fi
    	  if test -n "$link_static_flag"; then
    likely benign LLM, confidence 0.90 Warning about static linking via $echo.
    Reasoning

    Benign libtool warning message printed via $echo.

  296. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1220:10

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

          *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
    	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
    	;;
          *) qarg=$arg ;;
    likely benign LLM, confidence 0.90 Quotes argument for later use via $echo pipeline.
    Reasoning

    Benign libtool argument quoting via $echo and $Xsed.

  297. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

          *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
    	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
    	;;
          *) qarg=$arg ;;
  298. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1279:6

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  if test ! -f "$arg"; then
    	    $echo "$modename: symbol file \`$arg' does not exist"
    	    exit $EXIT_FAILURE
    	  fi
    likely benign LLM, confidence 0.90 Reports missing symbol file via $echo.
    Reasoning

    Benign libtool file-existence check reporting via $echo.

  299. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    	      # Check to see that this really is a libtool object.
    	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    		pic_object=
    		non_pic_object=
  300. info warn → info by review dynamic-import tests/examplefiles/bash/ltmain.sh:1323:15

    `source` called with a dynamic path — sourcing a variable script path (ast pass, confidence 0.75)

    		case $arg in
    		*/* | *\\*) . $arg ;;
    		*) . ./$arg ;;
    		esac
    likely benign LLM, confidence 0.80 Sources a script path given as an argument in libtool.
    Reasoning

    Sourcing a user-supplied path is a dynamic import, but this is libtool's standard handling of a script argument in an example file; the code is an ordinary build tool pattern.

  301. info warn → info by review dynamic-import tests/examplefiles/bash/ltmain.sh:1324:6

    `source` called with a dynamic path — sourcing a variable script path (ast pass, confidence 0.75)

    		*/* | *\\*) . $arg ;;
    		*) . ./$arg ;;
    		esac
    likely benign LLM, confidence 0.93 Sources a libtool .la control file from a command-line argument.
    Reasoning

    This is the standard libtool ltmain.sh idiom for sourcing a libtool control file (.la) given on the command line. The path is user-supplied build input, and the file is a well-known build-system script sitting in a syntax-highlighting test corpus. Nothing here is hidden or malicious.

  302. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1331:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    		   test "$non_pic_object" = none; then
    		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
    		  exit $EXIT_FAILURE
    		fi
    likely benign LLM, confidence 0.94 Calls echo through a variable for portability in an error message.
    Reasoning

    $echo is a variable holding the echo command, set elsewhere in ltmain.sh. This is a standard portability idiom in autotools-generated scripts, used for error messages, and does not indicate obfuscation.

  303. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1336:9

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    		# Extract subdirectory from the argument.
    		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    		if test "X$xdir" = "X$arg"; then
    		  xdir=
    likely benign LLM, confidence 0.94 Extracts a subdirectory from an argument via $echo piped to $Xsed.
    Reasoning

    The $echo variable is used with a pipeline to sed-like Xsed for path manipulation. This is ordinary libtool portability code for extracting a directory from a path.

  304. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    		# Extract subdirectory from the argument.
    		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    		if test "X$xdir" = "X$arg"; then
    		  xdir=
  305. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1389:5

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    		if test -z "$run"; then
    		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
    		  exit $EXIT_FAILURE
    		else
    likely benign LLM, confidence 0.94 Prints an error for an invalid libtool object via $echo.
    Reasoning

    Routine libtool error reporting through the $echo variable for an invalid object file. No malicious behaviour is visible.

  306. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1395:11

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    		  # Extract subdirectory from the argument.
    		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    		  if test "X$xdir" = "X$arg"; then
    		    xdir=
    likely benign LLM, confidence 0.94 Extracts a subdirectory from an argument via $echo and $Xsed.
    Reasoning

    Same pattern as the other $echo and $Xsed uses in ltmain.sh: portable path manipulation for object file handling in a build script.

  307. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    		  # Extract subdirectory from the argument.
    		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    		  if test "X$xdir" = "X$arg"; then
    		    xdir=
  308. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1402:17

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    
    		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
    		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
    		  libobjs="$libobjs $pic_object"
    likely benign LLM, confidence 0.94 Derives PIC and non-PIC object file names via $echo and $Xsed.
    Reasoning

    Computes pic and non-pic object names by piping $echo output through $Xsed with a substitution expression. This is ordinary libtool build logic.

  309. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    
    		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
    		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
    		  libobjs="$libobjs $pic_object"
  310. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1403:21

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
    		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
    		  libobjs="$libobjs $pic_object"
    		  non_pic_objects="$non_pic_objects $non_pic_object"
    likely benign LLM, confidence 0.94 Derives non-PIC object file names via $echo and $Xsed.
    Reasoning

    Same object-name derivation as the neighbouring lines, using the standard libtool $echo/$Xsed idiom. Nothing suspicious.

  311. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
    		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
    		  libobjs="$libobjs $pic_object"
    		  non_pic_objects="$non_pic_objects $non_pic_object"
  312. info warn → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1410:6

    command name is a variable (`$echo`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    	  else
    	    $echo "$modename: link input file \`$save_arg' does not exist"
    	    exit $EXIT_FAILURE
    	  fi
    likely benign LLM, confidence 0.94 Reports a missing link input file via $echo and exits.
    Reasoning

    Prints an error when a link input file does not exist, then exits. This is normal validation in a build script.

  313. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:1476:4

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

    	*)
    	  eval "$prev=\"\$arg\""
    	  prev=
    	  continue
    likely benign LLM, confidence 0.93 Uses eval to assign a parsed option value to a named variable.
    Reasoning

    eval assigns the argument to a variable whose name is held in $prev. This is the standard libtool option-parsing idiom. The input is the script's own command-line arguments, not attacker-controlled remote content.

  314. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

          -L*)
    	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
    	# We need an absolute path.
    	case $dir in
  315. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
    	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
    	  case :$dllsearchpath: in
    	  *":$dir:"*) ;;
  316. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	# to be aesthetically quoted because they are evaled later.
    	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    	case $arg in
    	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
  317. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

          -R*)
    	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
    	# We need an absolute path.
    	case $dir in
  318. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

          -Wc,*)
    	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
    	arg=
    	save_ifs="$IFS"; IFS=','
  319. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	IFS="$save_ifs"
    	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
    	;;
  320. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

          -Wl,*)
    	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
    	arg=
    	save_ifs="$IFS"; IFS=','
  321. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	IFS="$save_ifs"
    	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
    	;;
  322. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	# to be aesthetically quoted because they are evaled later.
    	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    	case $arg in
    	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
  323. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    	# Check to see that this really is a libtool object.
    	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    	  pic_object=
    	  non_pic_object=
  324. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	  # Extract subdirectory from the argument.
    	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    	  if test "X$xdir" = "X$arg"; then
    	    xdir=
  325. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    # Extract subdirectory from the argument.
    	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
    	    if test "X$xdir" = "X$arg"; then
    	      xdir=
  326. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    
    	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
    	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
    	    libobjs="$libobjs $pic_object"
  327. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
    	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
    	    libobjs="$libobjs $pic_object"
    	    non_pic_objects="$non_pic_objects $non_pic_object"
  328. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	# to be aesthetically quoted because they are evaled later.
    	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
    	case $arg in
    	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
  329. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:2005:7

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

        if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
          eval arg=\"$export_dynamic_flag_spec\"
          compile_command="$compile_command $arg"
          finalize_command="$finalize_command $arg"
    likely benign LLM, confidence 0.93 Evaluates a configured linker flag template for dynamic export.
    Reasoning

    eval expands a configured export_dynamic_flag_spec template, which is generated by libtool's configure step. It is standard build configuration handling.

  330. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

        # calculate the name of the file, without its directory
        outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
        libobjs_save="$libobjs"
  331. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:2021:5

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

        fi
        eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
        eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
    likely benign LLM, confidence 0.93 Evaluates the system library search path specification.
    Reasoning

    eval expands the system library search path specification, which is a configured variable from libtool's configure step. This is a routine, documented libtool pattern.

  332. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:2022:5

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

        eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
        eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
    
        output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
    likely benign LLM, confidence 0.93 Evaluates the dynamic library search path specification.
    Reasoning

    Same as the adjacent eval for the dlsearch path. It expands a configured spec variable, and the surrounding code is ordinary build logic.

  333. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    
        output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
        if test "X$output_objdir" = "X$output"; then
          output_objdir="$objdir"
  334. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

        if test ! -d "$output_objdir"; then
          $show "$mkdir $output_objdir"
          $run $mkdir $output_objdir
          exit_status=$?
  335. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

          $show "$mkdir $output_objdir"
          $run $mkdir $output_objdir
          exit_status=$?
          if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
  336. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	  fi
    	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
    	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
    	    for search_ext in .la $std_shrext .so .a; do
  337. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    	      *" $deplib "*)
    		if (${SED} -e '2q' $lib |
                        grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
    		  library_names=
  338. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    		    found=no
    		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
    		    test "X$ladir" = "X$lib" && ladir="."
    		    lib=$ladir/$old_library
  339. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    newdependency_libs="$deplib $newdependency_libs"
    	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
    	    ;;
    	  prog)
  340. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    fi
    	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
    	    ;;
    	  *)
  341. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	  if test "$pass" = link; then
    	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
    	    # Make sure the xrpath contains only unique directories.
    	    case "$xrpath " in
  342. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:2274:6

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

    	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
    		if eval $echo \"$deplib\" 2>/dev/null \
    		    | $SED 10q \
    		    | $EGREP "$match_pattern_regex" > /dev/null; then
    likely benign LLM, confidence 0.93 Evaluates a dependency library name while checking deplibs against a pattern.
    Reasoning

    eval on $deplib within a deplibs-check test pipeline. The variable comes from the libtool build's dependency-library list, so this is the expected libtool idiom.

  343. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    		if eval $echo \"$deplib\" 2>/dev/null \
    		    | $SED 10q \
    		    | $EGREP "$match_pattern_regex" > /dev/null; then
    		  valid_a_lib=yes
  344. command name is a variable (`$EGREP`) that this file sets only to plain text (ast pass, confidence 0.40)

    		    | $SED 10q \
    		    | $EGREP "$match_pattern_regex" > /dev/null; then
    		  valid_a_lib=yes
    		fi
  345. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    	# Check to see that this really is a libtool archive.
    	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
    	else
    	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
  346. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    
    	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
    	test "X$ladir" = "X$lib" && ladir="."
  347. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	esac
    	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
    
    	# Find the relevant object directory and library name.
  348. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	fi # $installed = yes
    	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
    
    	# This library was specified with -dlpreopen.
  349. command name is a variable (`$Xsed`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    case $deplib in
    	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
    	    esac
    	    # Need to link against all dependency_libs?
  350. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:2638:15

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

    	    shift; shift
    	    libname=`eval \\$echo \"$libname_spec\"`
    	    # use dlname if we got it. it's perfectly good, no?
    	    if test -n "$dlname"; then
    likely benign LLM, confidence 0.93 Expands the configured library name specification via eval.
    Reasoning

    Expands a configured libname_spec via eval to compute the library name. This is standard libtool configuration expansion, not obfuscation or a dropper.

  351. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:2650:8

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

    	      esac
    	      eval soname=\"$soname_spec\"
    	    else
    	      soname="$realname"
    likely benign LLM, confidence 0.90 Libtool shell script using eval to expand a soname_spec template variable.
    Reasoning

    This is GNU libtool's ltmain.sh, a standard build script. The eval of soname_spec is a documented libtool idiom for expanding configured variable templates. It is in a tests/examplefiles directory, so it is a sample file, not a malicious payload.

  352. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    soroot="$soname"
    	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
    	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
  353. command name is a variable (`$SED`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
    	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
    
    	    # If the library has no export list, then create one now
  354. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    else
    	      $show "extracting exported symbol list from \`$soname'"
    	      save_ifs="$IFS"; IFS='~'
    	      cmds=$extract_expsyms_cmds
  355. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:2668:3

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

    		IFS="$save_ifs"
    		eval cmd=\"$cmd\"
    		$show "$cmd"
    		$run eval "$cmd" || exit $?
    likely benign LLM, confidence 0.90 Libtool ltmain.sh evaluating a constructed build command string.
    Reasoning

    Standard libtool build script logic: eval expands a command string built from configured variables, then runs it through the run wrapper. This is expected behavior for autotools shell scripts, and the file is a lexer test sample.

  356. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

    		eval cmd=\"$cmd\"
    		$show "$cmd"
    		$run eval "$cmd" || exit $?
    	      done
  357. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    		$show "$cmd"
    		$run eval "$cmd" || exit $?
    	      done
    	      IFS="$save_ifs"
  358. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

    	    if test -f "$output_objdir/$newlib"; then :; else
    	      $show "generating import library for \`$soname'"
    	      save_ifs="$IFS"; IFS='~'
    	      cmds=$old_archive_from_expsyms_cmds
  359. info critical → info by review dynamic-execution tests/examplefiles/bash/ltmain.sh:2682:3

    `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

    		IFS="$save_ifs"
    		eval cmd=\"$cmd\"
    		$show "$cmd"
    		$run eval "$cmd" || exit $?
    likely benign LLM, confidence 0.90 Libtool ltmain.sh eval of a link command string.
    Reasoning

    Same pattern as the sibling finding in the same libtool script: eval of a command variable during linking, a normal autotools idiom and not an obfuscated dropper. The file lives in a tests examples directory.

  360. command name is a variable (`$show`) that this file sets only to plain text (ast pass, confidence 0.40)

    		eval cmd=\"$cmd\"
    		$show "$cmd"
    		$run eval "$cmd" || exit $?
    	      done
  361. command name is a variable (`$run`) that this file sets only to plain text (ast pass, confidence 0.40)

    		$show "$cmd"
    		$run eval "$cmd" || exit $?
    	      done
    	      IFS="$save_ifs"
  362. command name is a variable (`$EGREP`) that this file sets only to plain text (ast pass, confidence 0.40)

    		    if /usr/bin/file -L $add 2> /dev/null |
                          $EGREP ": [^:]* bundle" >/dev/null ; then
    		      $echo "** Warning, lib $linklib is a module, not a shared library"
    		      if test -z "$old_library" ; then
  363. info unicode-homoglyph tests/test_raw_token.py:10:17

    identifier `α` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

    def test_raw_token():
        code = "2 + α"
        raw = highlight(code, PythonLexer(), RawTokenFormatter())
        html = highlight(code, PythonLexer(), HtmlFormatter())
  364. info unicode-homoglyph tests/test_raw_token.py:58:33

    identifier `α` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

        assert (
            highlight("Token.Text\t'α'", RawTokenLexer(), RawTokenFormatter())
            == b"Token.Text\t'\\u03b1'\n"
        )
  365. info unicode-homoglyph tests/test_raw_token.py:62:34

    identifier `α` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

        assert (
            highlight("Token.Text\tu'α'", RawTokenLexer(), RawTokenFormatter())
            == b"Token.Text\t'\\u03b1'\n"
        )

Reproduce This Scan

Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.1.0
git clone https://github.com/pygments/pygments pygments && cd pygments
git checkout 2.21.0
disclude scan --severity info --diff 2.20.0 .