+
    :it                        ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	t	^ RI
t
^ RIHtHtHt ^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt  ! R	 R
]4      t ! R R]4      t]R8X  d   ]	P<                  ! 4        R# R# )    )
namedtupleN)dedent)TestCaseoverride_configignore_internal_warnings)jitnjit)types)default_manager)NumbaDebugInfoWarningc                   H   a  ] tR t^t o RtR tR tR tR tR t	R t
RtV tR	# )
TestDebugInfoz>
These tests only checks the compiled assembly for debuginfo.
c                F    VP                  V4       VP                  V4      # N)compileinspect_asmselffnsigs   &&&X/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_debuginfo.py_getasmTestDebugInfo._getasm   s    


3~~c""    c                    V P                  WR 7      p\        P                  ! RV\        P                  4      pVRJpV P	                  W6RV,          R7       R# )r   z\.section.+debugNzdebug info not found in:
%s)msg)r   researchIassertEqual)r   r   r   expectasmmgots   &&&&   r   _checkTestDebugInfo._check    sK    ll2l'II)35tm*H3*NOr   c                r    \        R RR7      R 4       pV P                  V\        P                  3RR7       R# )TFnopythondebugc                     V # r    xs   &r   foo3TestDebugInfo.test_no_debuginfo_in_asm.<locals>.foo'       Hr   r   r"   Nr   r&   r
   int32r   r0   s   & r   test_no_debuginfo_in_asm&TestDebugInfo.test_no_debuginfo_in_asm&   s5    	d%	(	 
)	 	Cekk^E:r   c                r    \        R R R7      R 4       pV P                  V\        P                  3R R7       R# )Tr)   c                     V # r   r-   r.   s   &r   r0   0TestDebugInfo.test_debuginfo_in_asm.<locals>.foo.   r2   r   r3   Nr4   r6   s   & r   test_debuginfo_in_asm#TestDebugInfo.test_debuginfo_in_asm-   s5    	d$	'	 
(	 	Cekk^D9r   c                >   \        R ^4      ;_uu_ 4        \        RR7      R 4       pV P                  V\        P                  3RR7       \        RRR7      R 4       pV P                  V\        P                  3RR7       RRR4       R#   + '       g   i     R# ; i)	DEBUGINFO_DEFAULTT)r*   c                     V # r   r-   r.   s   &r   r0   4TestDebugInfo.test_environment_override.<locals>.foo7       r   r3   Fr)   c                     V # r   r-   r.   s   &r   bar4TestDebugInfo.test_environment_override.<locals>.bar=   rB   r   N)r   r   r&   r
   r5   )r   r0   rD   s   &  r   test_environment_override'TestDebugInfo.test_environment_override4   s    0!44$  KK%++K= $e, -KK%++K> 5444s   A,BB	c                *  aa \        R R7      R 4       o\        RR7      R 4       o\         VV3R l4       p\        R^4      ;_uu_ 4        V! \        P                  4      pRRR4       V P	                  XVP                  \        P                  4      4       VP                  VP                  ^ ,          4      p\        P                  ! V4      pVP                  VP                  ^ ,          ,          P                  P                  pVP                   Uu. uF  qfP                  V8X  g   K  VNK  	  ppV P                  \!        V4      ^4       V^ ,          p. p	VP"                   FQ  p
V
P$                   F>  pVP&                  R8X  g   K  V	P)                  \+        V4      P-                  4       4       K@  	  KS  	  RpRpSP                  SP                  ^ ,          ,          P                  P                  pV	 FY  pV'       g    \.        P0                  ! R	V4      '       d   R pV'       d   K4  \.        P0                  ! R
V R
2V4      '       g   KW  R pK[  	  V P3                  V4       V P3                  V4       R#   + '       g   i     EL#; iu upi )T)forceinlinec                 .    \         P                  ! V 4      # r   )mathsinr.   s   &r   rD   :TestDebugInfo.test_llvm_inliner_flag_conflict.<locals>.barG       88A;r   Fc                 .    \         P                  ! V 4      # r   )rK   cosr.   s   &r   baz:TestDebugInfo.test_llvm_inliner_flag_conflict.<locals>.bazK   rN   r   c                 *   < S! V 4      pS! V 4      pW3# r   r-   )r/   abrD   rQ   s   &  r   r0   :TestDebugInfo.test_llvm_inliner_flag_conflict.<locals>.fooO   s    AAAA4Kr   r?   Ncallz.*llvm.sin.f64.*z.*)r	   r   nppiassertPreciseEqualpy_funcinspect_llvm
signaturesllvmparse_assembly	overloadsfndescmangled_name	functionsnamer!   lenblocksinstructionsopcodeappendstrstripr   match
assertTrue)r   r0   resultfull_irmodulerd   r/   funcsfuncf_namesblkstmt	found_sin	found_bazbaz_namerD   rQ   s   &              @@r   test_llvm_inliner_flag_conflict-TestDebugInfo.test_llvm_inliner_flag_conflictB   s   
 
$		 
 	 
%	 	 
!	 
	 
	 0!44ZF 5 	BEE(:; ""3>>!#45$$W-}}S^^A./66CC",,?,q$,?UQ'Qx ;;C((;;&(NN3t9??#45 )  		==!23::GGA*<a!@!@ 	9Bxj*;Q!?!? 		  		"	"E 544 @s   I<J.J<J	r-   N)__name__
__module____qualname____firstlineno____doc__r   r&   r7   r<   rF   ry   __static_attributes____classdictcell____classdict__s   @r   r   r      s.     #P;:?6# 6#r   r   c                      a  ] tR t^{t o RtRR/tR tR tR tR t	R t
R	 t]P                  ! ]R
7      R 4       t]P                  ! ]R
7      R 4       tR tR tR tR tR tR tR tR tR tRtV tR# )TestDebugInfoEmissionz0Tests that debug info is emitted correctly.
    	NUMBA_OPT0c                    \        R ^ 4      ;_uu_ 4        VP                  V4       VP                  V4      uuRRR4       #   + '       g   i     R# ; i)OPTN)r   r   r\   r   s   &&&r   _get_llvmir!TestDebugInfoEmission._get_llvmir   s5    UA&&JJsO??3' '&&&s   "AA	c                    V P                  W4      P                  4       p\        P                  ! R 4      p. pV F-  pVP	                  V4      '       g   K  VP                  V4       K/  	  V# )z![0-9]+ =.*)r   
splitlinesr   r   rl   ri   )r   r   r   llmeta_remetadatalines   &&&    r   _get_metadata#TestDebugInfoEmission._get_metadata   sZ    b&113**^,D}}T""%  r   c                    \        4       p\        P                  ! R4      pV F4  pVP                  V4      pV'       g   K  VP	                  4       w  rgWrV&   K6  	  V# )zTGets the map of DI label to md, e.g.
'!33' -> '!{!"branch_weights", i32 1, i32 99}'
z(![0-9]+) = (.*))dictr   r   rl   groups)r   r   metadata_definition_mapmeta_definition_splitr   matcheddbg_valinfos   &&      r   _get_metadata_map'TestDebugInfoEmission._get_metadata_map   sY     #'& "

+> ?D+11$7Gw ' 0370	 
 '&r   c                   V P                  V4      p\        4       pVP                  4        FO  p\        P                  ! R V4      pV'       g   K$  \        VP                  ^4      4      pVP                  V4       KQ  	  V# )z!DILocation\(line: (\d+),)r   setvaluesr   rl   intgroupadd)r   r   
md_def_maplinesmdr$   lns   &&     r   _get_lines_from_debuginfo/TestDebugInfoEmission._get_lines_from_debuginfo   se    ++H5
##%B5r:Aq_		"	 &
 r   c                    \        R R7      R 4       pV P                  VR	R7      pV^ ,          pV P                  RVR,          4       V P                  RV4       V P                  RV4       R# )
Tr+   c                      R # r   r-   r-   r   r   r0   /TestDebugInfoEmission.test_DW_LANG.<locals>.foo       r   r   z!0:N   Nz,!DICompileUnit(language: DW_LANG_C_plus_pluszproducer: "clang (Numba)"Nr-   )r	   r   r!   assertIn)r   r0   r   DICompileUnits   &   r   test_DW_LANG"TestDebugInfoEmission.test_DW_LANG   so    	D		 
	 %%cr%2 }R01D#	%1=Ar   c           
     D   \        RRR7      R 4       p\        P                  3pV P                  WR7      pV P	                  WR7      p\
        P                  ! V4      pVP                  VP                  ^ ,          ,          P                  P                  pVP                   Uu. uF  qwP                  V8X  g   K  VNK  	  ppV P                  \        V4      ^4       V^ ,          p	V	P                   Uu. uF  qwNK  	  p
pV P!                  \        V
4      ^4       V
^ ,          pVP"                   Uu. uF  qwP$                  R9  g   K  VNK  	  pp0 RmpRpV Fb  pVP$                  V9   d*   VP'                  VP$                  4       V'       g   RpK;  K=  V'       g   KG  V'       g   KQ  V P)                  R4       Kd  	  V P+                  VR4       \-        4       p\.        P0                  ! R	4      pRpV F  p\3        V4      pVP5                  V4      pV'       g1   RpT P7                  \9        V Uu. uF  qwV9   NK	  	  up4      4       KW  VP;                  4       pV P                  \        V4      ^4       V^ ,          p\=        VR
,          4      pV^ 8  d   V P7                  VV8  4       TpVP?                  V4       K  	  \@        PB                  ! V4      w  ppV PE                  V4      p. ROpV Uu. uF  pV^,           V,           NK  	  pp\G        \I        VR R7      V4       F$  w  ppVV,          p V PK                  RV 2V 4       K&  	  Rp!\.        P0                  ! V!4      p"VPM                  4        Fw  p#V"P5                  V#4      pV'       g   K  VP;                  4       pV P                  \        V4      ^4       \=        V^ ,          4      p$V^,           p%V P                  V$V%4        R# 	  V P)                  R4       R# u upi u upi u upi u upi u upi )z9Tests that DILocation information is reasonable.
        Tnumpy)r+   error_modelc                 P    V R ,           pVR,          pW,          p\        V4       V# )gGz?gQ@)print)rT   rU   cds   &   r   r0   2TestDebugInfoEmission.test_DILocation.<locals>.foo   s'    DADAA!HHr   r   FzMath opcodes are not contiguouszMath opcodes were not foundz.*!dbg (![0-9]+).*$   NNc                 &    \        V R ,          4      # )r   )r   r.   s   &r   <lambda>7TestDebugInfoEmission.test_DILocation.<locals>.<lambda>  s    s1R5zr   )keyzline: z1.*!DILocalVariable\(name: "a",.*line: ([0-9]+),.*z%Assertion on DILocalVariable not madeN)rW   loadstore>   faddfdivfmul)zalloca zstore )r   r   r      )'r	   r
   float64r   r   r^   r_   r`   r]   ra   rb   rc   rd   r!   re   rf   assertGreaterrg   rh   removefailassertFalser   r   r   rj   rl   rm   anyr   r   r   inspectgetsourcelinesr   zipsortedr   r   )&r   r0   r   r   ro   rp   rd   r/   rq   rr   rf   blockinstrs	op_expectstartedline2dbg
re_dbg_reffoundinstrinst_as_strr   acceptedr   r   int_dbg_valpysrcpysrc_line_startr   offsets
pyln_rangekline_nodilocation_infoexprmatch_local_var_aentrydbg_linedeflines&   &                                     r   test_DILocation%TestDebugInfoEmission.test_DILocation   s    
Dg	.	 
/	2 }}%%c%3""3"0$$W-}}S^^A./66CC",,?,q$,?UQ'Qx![[)[![)3v;*q	 #// -/88+4,!!/ -,	Axx9$  *"G ww		;<  	$AB
 5ZZ 67
Ee*K &&{3G 1x$Hx!+%5x$H IJ^^%FS[!,QiGgbk*Kzu 45E LL!' * #*"8"8"= #'"8"8"B

 9@@1&*Q..
@  x5I J *,LQ5a8OMMF7),o>, DJJt,,335E'--e4Gw )  Va0vay> +Q.  73 6 II=>m @ *
-6 %I4 As*   %P	<P	6
P4PP4P8P)envvarsc                6   \        R R7      R 4       pV! ^{4       VP                  VP                  ^ ,          4      p\        P                  ! V4      pVP
                  VP                  ^ ,          ,          P                  P                  pVP                   Uu. uF  qUP                  V8X  g   K  VNK  	  ppV P                  \        V4      ^4       V^ ,          pVP                   Uu. uF  qUNK  	  ppV P                  \        V4      ^4       Vw  rV	P                   Uu. uF  qUNK  	  ppVR,          pV P                  VP                  R4       VP                   Uu. uF  qUNK  	  ppV P                  \        V4      ^4       V^ ,          p\!        V4      P#                  R4      ^ ,          P%                  4       pV P                  WP                  4       V P'                  \!        V4      P)                  V4      4       R# u upi u upi u upi u upi )Tr   c                     V ^,           # r   r-   rT   s   &r   r0   <TestDebugInfoEmission.test_DILocation_entry_blk.<locals>.fooA  s    q5Lr   br:Nr   )r	   r\   r]   r^   r_   r`   ra   rb   rc   rd   r!   re   rf   rg   rh   operandsrj   splitrk   rm   endswith)r   r0   ro   rp   rd   r/   rq   rr   rf   entry_block
body_blockentry_instrujmpujmp_operandstarget_datatargets   &               r   test_DILocation_entry_blk/TestDebugInfoEmission.test_DILocation_entry_blk1  s     
D		 
	C""3>>!#45 $$W-}}S^^A./66CC",,?,q$,?UQ'Qx![[)[![)Va("( #.":":;":Qq":;2d+$(MM2MqM2]+Q/#A&[!'',Q/5571D	**623' @ * < 3s   H0H*
H#
H"
Hc                  a \        RR7      R 4       o\        RR7      V3R l4       p\        P                  R,          3pV P                  WR7      p^ pVP	                  4        FG  pVP                  4       pVP                  R4      '       g   K,  V P                  VR4       V^,          pKI  	  V P                  V^ 4       R	# )
zThis tests that decref's generated from `ir.Del`s as variables go
out of scope do not have debuginfo associated with them (the location of
`ir.Del` is an implementation detail).
Tr   c                      R # r   r-   r.   s   *r   sink:TestDebugInfoEmission.test_DILocation_decref.<locals>.sinkq  r   r   c                 ^   < W 3pV ^ ,          ^ 8X  d   S! V4       ^# V^ ,          ^ ,          pV# r   r-   )rT   r/   zr  s   &  r   r0   9TestDebugInfoEmission.test_DILocation_decref.<locals>.foov  s1    AtqyQ!QAHr   NNr   r   zcall void @NRT_decrefz.*meminfo\.[0-9]+\)$N)	r	   r
   r   r   r   rk   
startswithassertRegexr   )r   r0   r   ro   countr   line_strippedr  s   &      @r   test_DILocation_decref,TestDebugInfoEmission.test_DILocation_decrefj  s     
D		 
	 
D		 
	 }}S!#""3"0 &&(D JJLM''(?@@  '>?
	 )
 	5!$r   c                   \        RR7      R 4       p\        P                  3pV P                  WR7      p\        P
                  ! V4      w  rERp\        P                  ! V4      p\        4       pV Fj  p	VP                  V	4      p
V
'       g   K  V
P                  4       pV P                  \        V4      ^4       VP                  \        V^ ,          4      4       Kl  	  V P                  \        V4      ^4       V P                  WX4       R# )zTests that DILocation information for undefined vars is associated
with the line of the function definition (so it ends up in the prologue)
Tr   c                 >    V '       d   V ^ 8  d   ^ pX# X^,          pV# r  r-   )nr   s   & r   r0   <TestDebugInfoEmission.test_DILocation_undefined.<locals>.foo  s&    q5A Qr   r   z:.*!DILocalVariable\(name: "c\$?[0-9]?",.*line: ([0-9]+),.*N)r	   r
   intpr   r   r   r   r   r   rl   r   r!   re   r   r   r   )r   r0   r   r   r   r   r   matcherassociated_linesr   rl   r   s   &           r   test_DILocation_undefined/TestDebugInfoEmission.test_DILocation_undefined  s     
D		 
	 zzm%%c%3")"8"8"=L**T"5BMM"%Eu  Va0 $$S^4  	-.2&9r   c                   \        RR7      R 4       p\        P                  3pV P                  WR7      p\        P
                  ! V4      w  rERp\        P                  ! V4      p\        4       pV Fj  p	VP                  V	4      p
V
'       g   K  V
P                  4       pV P                  \        V4      ^4       VP                  \        V^ ,          4      4       Kl  	  V P                  \        V4      ^4       \        4       p\        V4       F%  w  rRV9   g   K  VP                  W,           4       K'  	  V P                  \        V4      ^4       V P                  W4       R# )z`Tests that DILocation information for versions of variables matches
up to their definition site.Tr   c                 0    V '       d   ^pM^p^p^p^p^pV# )   r-   )r  r   py310_defeat1py310_defeat2py310_defeat3py310_defeat4s   &     r   r0   FTestDebugInfoEmission.test_DILocation_versioned_variables.<locals>.foo  s(    MMMMHr   r   z9.*!DILocalVariable\(name: "c\$[0-9]?",.*line: ([0-9]+),.*zc = N)r	   r
   r  r   r   r   r   r   r   rl   r   r!   re   r   r   	enumerate)r   r0   r   r   r   r   r   r  r  r   rl   r   py_linesixpylns   &              r   #test_DILocation_versioned_variables9TestDebugInfoEmission.test_DILocation_versioned_variables  s-    
D	
	 

	 zzm%%c%3")"8"8"= L**T"5BMM"%Eu  Va0 $$S^4  	-.2 5!%(HB~R23 ) 	X* 	)4r   c                  a \        RR4      p\        P                  V! R^ R4      \        P                  V! R^@R4      \        P                  V! R^R4      \        P
                  V! R^R4      \        P                  V! R	^ R4      \        P                  V! R
^@R4      \        P                  V! R^R4      \        P                  V! R^R4      \        P                  V! R^ R4      \        P                  V! R^@R4      \        P                  V! R^@R4      \        P                  V! R^R4      /pVP                  4        EFH  w  op\        RR7      V3R l4       pV P!                  VR'R7      pV P#                  V4      pVP                  4        F  w  rxRV9   g   K  Wg,          p	 M		  Q R4       h\$        P&                  ! RV	4      P)                  4       ^ ,          p
Wj,          pRVP*                  9   d>   RVP,                   RVP.                   RVP*                   R2pV P1                  W4       K  VP.                  ^@8X  d   RMR pR!VP*                   R"VP,                   R#V R$V R%VP.                   2
pV P3                  W4       EKK  	  R&# )(z?Tests that dwarf info is correctly emitted for numeric scalars.DIzname bits encodingfloat32DW_ATE_floatr   int8DW_ATE_signedint16r5   int64uint8DW_ATE_unsigneduint16uint32uint64	complex64DW_TAG_structure_type
complex128Tr   c                     < S! ^
4      p V # 
   r-   )rT   tys    r   r0   7TestDebugInfoEmission.test_numeric_scalars.<locals>.foo  s    rFr   r   DILocalVariable(name: "a"missing DILocalVariable 'a'.*type: (![0-9]+).*DW_ATEz!DIBasicType(name: "	", size: z, encoding: )floatdoublezdistinct !DICompositeType(tag: z	, name: "z ({z, z})", size: Nr-   )r   rX   r(  r   r*  r,  r5   r-  r.  r0  r1  r2  r3  r5  itemsr	   r   r   r   rl   r   encodingrd   bitsr!   r   )r   r'  
type_infos
dwarf_infor0   r   r   r   vlvartype_marker	type_declexpectedraw_fltr9  s   &             @r   test_numeric_scalars*TestDebugInfoEmission.test_numeric_scalars  sp    23jj"YN"Cjj"YN"Cggr&!_=hh7B @hh7B @hh7B @hh7A/@ AiiHb2C!DiiHb2C!DiiHb2C!DllB{B'>%@mmRc(?&AC
 )..0NB
  ))#2)6H&*&<&<X&F#/557.!325D 8
 877q((#8$?FFHKK/<I:...2:??2C D%%/__$5 6))3)<)<(=Q@   5 &0__%:'$$.$7$7#8 9&&0oo%6 7"")"WI 6%%/__$5	7
 h2C 1r   c                   \        R R7      R 4       pV P                  VRR7      pV P                  V4      pVP                  4        F  w  rERV9   g   K  W4,          p M		  Q R4       h\        P
                  ! RV4      P                  4       ^ ,          pW7,          pV P                  RV4       V P                  R\        \        P                  R ,          4       2V4       \        P                  ! R	4      p	V	P                  V4      P                  4       p
V P                  \        V
4      ^4       V
^ ,          pW;,          pR!p\        P                  ! V4      pVP                  V4      P                  4       pV P                  VR
J4       \        P                   ! \        P                  R ,          4      pV P                  \        V4      \        VP"                  4      4       \        P$                  P&                  pRV R2pRV RV R2pRV RV R^V,           RV R2	pRVRVRVRVRVRVRV/pRp\        P                  ! V4      p\)        VP"                  4       F  w  ppW?V,          ,          pV P                  RV4       V P                  RV R2V4       VP                  V4      pVP                  4       pV P                  \        V4      ^4       V^ ,          pVV,          pV P+                  VVV,          4       K  	  R
# )"Tr   c                  R    \         P                  ! R\         P                  R7      p V # )r   )dtype)r   r   )rX   onesr   r   s    r   r0   .TestDebugInfoEmission.test_arrays.<locals>.foo  s    bjj1AHr   r   r;  r<  r=  z+!DICompositeType(tag: DW_TAG_structure_typezname: "z.*elements: (![0-9]+),.*NzC!DIDerivedType\(tag: DW_TAG_pointer_type, baseType: ![0-9]+, size: z\)z!DIBasicType\(name: "intr?  z, encoding: DW_ATE_signed\)z>!DICompositeType\(tag: DW_TAG_array_type, name: "UniTuple\(intz x 2\) \(\[2 x iz \]\)", baseType: ![0-9]+, size: z), elements: ![0-9]+, identifier: "\[2 x iz\]"\)meminfoparentnitemsitemsizedatashapestridesz*!DIDerivedType\(.*, baseType: (![0-9]+),.*DIDerivedType"r-   ):NNNr  zN!{(![0-9]+), (![0-9]+), (![0-9]+), (![0-9]+), (![0-9]+), (![0-9]+), (![0-9]+)})r	   r   r   rC  r   rl   r   r   rj   r
   r   r   r!   re   assertIsNotNoner   lookup_fieldsr  bitwidthr   r
  )r   r0   r   r   r   rH  rI  rJ  rK  match_elementselem_matches
elem_matchstruct_markersstruct_patternmatch_structstruct_member_matches
data_modelptr_sizeptr_reint_re	utuple_rerL  base_type_patternbase_type_matcherr"  fieldderived_typebase_type_matchbase_type_matchesbase_type_marker	data_types   &                              r   test_arrays!TestDebugInfoEmission.test_arrays  s   	D		 
	 %%cr%2"&"8"8"B+113DA*a/.1 4
 4331hh4d;BBDQG+8	 	CYOEMM&$9 :;<iH $?@%++I6==?\*A.!!_
 1<@zz.1 , 2 2> B I I K2$>?$++EMM&,AB
23S9K9K5LM::&&//7j<-hZy
 K/ /--5J 7""* , 8|n ---5Je	=	
 vffFYy* JJJ'89":#5#56IB23LMLMM/<8MMGE7!,l;/55lCO / 6 6 8S!23Q703/0@AIY8 7r   c           	       a  V 3R  lpR pR p\        RR7      ! V4      p\        RRR7      ! V4      p\        RRRR7      ! V4      pVP                  P                  p/ p\        ^ V^,           0\	        4       \	        R.4      R7      W&   \        \	        \        V^,           V^,           4      4      \	        R.4      \	        4       R7      W&   \        ^ V^,           0\	        R	.4      \	        R.4      R7      W&   V! 4       p	VP                  4        F  w  rS P                  V
P                  4      ;_uu_ 4        V
! 4       pS P                  W4       S P                  V! V
4      VR
,          4       V! V
4      pVR,          pS P                  W,          V4       VR,          pS P                  W,          4       RRR4       K  	  R#   + '       g   i     K  ; i)c                 n   < SP                  W P                  ^ ,          4      pSP                  V4      pV# r  )r   r]   r   )r   r   r   r   s   &  r   get_debug_linesATestDebugInfoEmission.test_debug_optnone.<locals>.get_debug_lines[  s1    ))"mmA.>?H228<ELr   c                 (   V P                   V P                  ^ ,          ,          pVP                  pVP                  P	                  VP
                  P                  4      p \        RP                  V P                  4      P                  4       4      pV# )r       )r`   r]   library_final_moduleget_functionra   rb   r   join
attributesr   )r   creslibattrss   &   r   get_func_attrs@TestDebugInfoEmission.test_debug_optnone.<locals>.get_func_attrs`  sg    <<a 01D,,C""//0H0HIB		"--06689ELr   c                  B    ^
p ^ p\        V 4       F  pW,          pK  	  V# r7  )range)r  r   is      r   r0   5TestDebugInfoEmission.test_debug_optnone.<locals>.foog  s&    AA1X Hr   Tr   r+   _dbg_optnone)r+   r  rI   s   optnone)r   must_have_attrsmust_not_have_attrss   alwaysinliner   r  r  N)r	   __code__co_firstlinenor   r   r  rC  subTesttargetoptionsr!   r   )r   rz  r  r0   	foo_debugfoo_debug_optnonefoo_debug_optnone_inline	firstlineexpected_infoexpected_retudtrL  r%   r  	must_havemust_not_haves   f               r   test_debug_optnone(TestDebugInfoEmission.test_debug_optnoneZ  s   	
		 t$S)	 t$?D#'d48$::=$?  LL//	#'i!m$E #ZL 1	$
  ,0eIM9q=9:- #	,
( 37 i!m$ 12 #ZL 13
/ u*002MCc//00e  3   !5x7HI 's+$%67	  !2I> ()> ?  !67 10 3000s   9BGGc                f   \        R R7      RR l4       p\        R^4      ;_uu_ 4        V! 4        RRR4       V P                  V\        P                  ! R4      3R7      pV P                  V4      p. pV F  pRV9   g   K  VP                  V4       K  	  V P                  \        V4      ^4       VP                  4       p\        P                  ! RV4      pV P                  V4       VP                  4       pV P                  \        V4      ^4       V^ ,          p	W9,          p
\        P                  ! RV
4      pV P                  V4       VP                  4       pV P                  \        V4      ^4       V^ ,          P                  R	4       Uu. uF  qP                  4       NK  	  upR,          pW>,          pR
pV P!                  VV4       \        P                  ! VV4      P                  4       ^ ,          pVV,          pV P                  VR4       R#   + '       g   i     EL; iu upi )Tr   Nc                     R # r   r-   )missings   &r   r0   3TestDebugInfoEmission.test_omitted_arg.<locals>.foo  r   r   r?   r   DISubroutineTypez(.*!DISubroutineType\(types: ([!0-9]+)\)$z!{(.*)},zy^.*!DICompositeType\(tag: DW_TAG_structure_type, name: "Anonymous struct \({}\)", elements: (![0-9]+), identifier: "{}"\)z!{}r   r   )r	   r   r   r
   Omittedr   ri   r!   re   popr   rl   r^  r   r   rk   r
  )r   r0   r   r   
tmp_disubrr   disubrdisubr_matcheddisubr_groupsdisubr_metadisubr_typesdisubr_types_matcheddisubr_types_groupsr/   	md_fn_argarg_tyexpected_arg_ty
md_base_tybase_tys   &                  r   test_omitted_arg&TestDebugInfoEmission.test_omitted_arg  s   	D		 
	 0!44E 5 %%cd0C/E%F"&"8"8"B 
B!R'!!"%  	Z!,!"M"(*^,&--/]+Q/#A& /;!xx
LA^,299;0115 )<A(>(D(DS(IJ(I1WWY(IJ2N	(3< 	1XXov6==?B
)*55*M 544: Ks   HH.H+	c                j   R p\        4       p\        \        V4      / V4       \        RR7      ! VR,          4      p\        P
                  ! RR7      ;_uu_ 4       p\        P                  ! R\        4       \        4        V! 4        RRR4       V P                  \        X4      ^4       V^ ,          pV P                  VP                  \        4       \        VP                  4      pV P                  RV4       V P                  \        VP                  4      V4       R#   + '       g   i     L; i)z1
        def foo():
            return 1
        Tr   r0   recordalwaysNz"Could not find source for function)r   execr   r	   warningscatch_warningssimplefilterr   r   r!   re   categoryrj   messager   r[   )r   strsrclr0   wr   r   s   &      r   test_missing_source)TestDebugInfoEmission.test_missing_source  s     FVF^R#qx($$D11Q!!(,AB$&E 2
 	Q#!)>?%-- :C@c#++&, 21s   -D""D2	c                   \        R R7      R 4       p\        P                  ! R R7      ;_uu_ 4       p\        P                  ! R\        4       \        4        V! 4        RRR4       V P                  \        X4      ^ 4       V P                  WP                  ^ ,          4      pV P                  V4      pV P                  \        V4      ^4       R#   + '       g   i     L{; i)Tr   c                      ^# r   r-   r-   r   r   r0   CTestDebugInfoEmission.test_irregularly_indented_source.<locals>.foo  s     r   r  r  N)r	   r  r  r  r   r   r!   re   r   r]   r   )r   r0   r  r   r   s   &    r    test_irregularly_indented_source6TestDebugInfoEmission.test_irregularly_indented_source  s    	D		 
	 $$D11Q!!(,AB$&E 2 	Q#%%c>>!+<=..x8UQ' 21s   -CC"	c                    \        R RRR7      R 4       p\        \        VP                  4       P	                  4       4      4      ^,          pVP                  4        F  pRV9   g   K  V P                  RV4       K   	  R# )zint64(boolean, boolean)Tr  c                 *    V '       d   V'       d   ^# ^# r   r-   )cond1cond2s   &&r   choiceBTestDebugInfoEmission.test_no_if_op_bools_declared.<locals>.choice  s    r   zllvm.dbg.declareboolN)r	   nextiterr\   rC  r   assertNotIn)r   r  llvm_irr   s   &   r   test_no_if_op_bools_declared2TestDebugInfoEmission.test_no_if_op_bools_declared  sr    	't$	G	 
H	 tF//1779:;A>&&(D!T)  . )r   r-   N)r{   r|   r}   r~   r   _NUMBA_OPT_0_ENVr   r   r   r   r   r   r   run_test_in_subprocessr   r  r  r$  rN  rv  r  r  r  r  r  r   r   r   s   @r   r   r   {   s      $S)(
'
Bz?x $$-=>64 ?64p $$-=>% ?%@:@,5\53nH9T?8B-+^-.((/ /r   r   __main__)collectionsr   r   r   r   rX   rK   textwrapr   unittestr  numba.tests.supportr   r   r   numbar   r	   
numba.corer
   numba.core.datamodelr   numba.core.errorsr   llvmlite.bindingbindingr^   r   r   r{   mainr-   r   r   <module>r     sl    "  	     ; ;   0 3 a#H a#HH
/H H
/V zMMO r   