2016-02-01 9 views
5

Se nella console di debug del Xcode digitoIn Objective-C, fabsf() ha il torto tipo di risultato

(lldb) p (float)fabsf(-5.0f) 
(float) $22 = 0 
(lldb) p (double)fabsf(-5.0f) 
(double) $23 = 5 

in cui il primo risultato colata a galleggiare (senza fusione , il comando p non può riconoscere il tipo di ritorno fabsf) è errato a prescindere dal parametro.

Ma nelle intestazioni di libreria il tipo di ritorno di fabs è chiaramente un float. Qualcuno può spiegarmi questo?

ios9.2: math.h

... 
extern float fabsf(float); 
extern double fabs(double); 
extern long double fabsl(long double); 
... 

C'è qualche meccanismo lldb o un problema che io non sono a conoscenza, o realmente un problema di implementazione del linguaggio (indovinate no ...)?

+0

Non riesco a riprodurre i risultati, correndo contro il simulatore. – Avi

+1

Ho effettivamente riprodotto su iPhone 6s, Xcode 7.2. In attesa di risposta)) – sage444

+3

Riproducibile in lldb sotto OS X direttamente. Lo stesso accade con altre funzioni di ritorno 'float' (ad es.' Fmaxf') e cast. Suggerirei un bug e dovresti segnalare ad Apple (bugreport.apple.com) – CRD

risposta

3

Era quasi certo un bug della console lldb in Xcode 7 e a ticket è stato creato per questo.

Il problema non è più presente in Xcode 8.0.

Problemi correlati