Changeset 775
- Timestamp:
- 12/05/10 03:34:19 (14 years ago)
- Files:
-
- trunk/src/e2ir.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/e2ir.c
r768 r775 274 274 elem *et = e->E1; 275 275 e->E1 = el_una(OPs32_d, TYdouble, e->E2); 276 276 e->E1 = el_una(OPd_ld, TYldouble, e->E1); 277 277 e->E2 = et; 278 278 } 279 279 else if (op == OPyl2x || op == OPyl2xp1) 280 280 { 281 281 elem *et = e->E1; 282 282 e->E1 = e->E2; 283 283 e->E2 = et; 284 284 } 285 285 } 286 286 else 287 287 e = el_una(op,tyret,ep); 288 288 } 289 289 else if (ep) 290 290 { /* Do not do "no side effect" calls if a hidden parameter is passed, 291 291 * as the return value is stored through the hidden parameter, which 292 292 * is a side effect. 293 293 */ 294 e = el_bin((tf->purity == PUREstrong && tf->isnothrow && (retmethod != RETstack)) ? 295 OPcallns : OPcall,tyret,ec,ep); 294 e = el_bin(((fd ? fd->isPure() : tf->purity) == PUREstrong && 295 tf->isnothrow && (retmethod != RETstack)) ? 296 OPcallns : OPcall,tyret,ec,ep); 296 297 if (tf->varargs) 297 298 e->Eflags |= EFLAGS_variadic; 298 299 } 299 300 else 300 { e = el_una((tf->purity == PUREstrong && tf->isnothrow && (retmethod != RETstack)) ? 301 { e = el_una(((fd ? fd->isPure() : tf->purity) == PUREstrong && 302 tf->isnothrow && (retmethod != RETstack)) ? 301 303 OPucallns : OPucall,tyret,ec); 302 304 if (tf->varargs) 303 305 e->Eflags |= EFLAGS_variadic; 304 306 } 305 307 306 308 if (retmethod == RETstack) 307 309 { 308 310 e->Ety = TYnptr; 309 311 e = el_una(OPind, tyret, e); 310 312 } 311 313 312 314 #if DMDV2 313 315 if (tf->isref) 314 316 { 315 317 e->Ety = TYnptr; 316 318 e = el_una(OPind, tyret, e); 317 319 } 318 320 #endif 319 321 320 322 if (tybasic(tyret) == TYstruct)
