Skip to contentSkip to conversation

Compile warnings due to missing __inline__ in fs/xfs/xfs_log.h

PATCH Thomas Schlichter 3 participants 3 messages Dec 17, 2002 XFS filesystem

lore
Share & tools
lore
#0 lore raw

As the __inline__ directive in front of the _lsn_cmp function is not used with the gcc version 2.95.x, compile-warnings result from many files including this header-file.

Is there any reason why this function is not inlined with these compiler versions? As I used following patch and compiled the kernel with my gcc2.95.3(SuSE) and an other gcc2.95.4(Debian) these compiler warnings disappeared and no additional warning or error occured...

Is there an difference between '__inline__' and 'inline'?
Is 'inline' not part of the ANSI-C standard and so should be preferred?

Thanks

Thomas Schlichter

fs/xfs/xfs_log.h +1 -6
diff -u linux-2.5.52/fs/xfs/xfs_log.h linux-2.5.52_patched/fs/xfs/xfs_log.h
@@ -52,12 +52,7 @@
  * By comparing each compnent, we don't have to worry about extra
  * endian issues in treating two 32 bit numbers as one 64 bit number
  */
-static
-#ifdef __GNUC__
-# if !((__GNUC__ == 2) && (__GNUC_MINOR__ == 95))
-__inline__
-#endif
-#endif
+static inline
 xfs_lsn_t	_lsn_cmp(xfs_lsn_t lsn1, xfs_lsn_t lsn2, xfs_arch_t arch)
 {
 	if (CYCLE_LSN(lsn1, arch) != CYCLE_LSN(lsn2, arch))
#1 lore raw
Quoted 8 lines · Thomas Schlichter

As the __inline__ directive in front of the _lsn_cmp function is not used with the gcc version 2.95.x, compile-warnings result from many files including this header-file.

Is there any reason why this function is not inlined with these compiler versions? As I used following patch and compiled the kernel with my gcc2.95.3(SuSE) and an other gcc2.95.4(Debian) these compiler warnings disappeared and no additional warning or error occured...

The reason inline is turned off for this compiler version is that it generates bad code when inlining this code. So you can have a quiet compile, or bad code.

Steve

#2 lore raw

OK, thanks for that info, now I understand...
So I think I better take the warnings ;-)

Thomas

Am Dienstag, 17. Dezember 2002 18:55 schrieb Stephen Lord:

Quoted 10 lines · Thomas Schlichter
Quoted 3 lines

As the __inline__ directive in front of the _lsn_cmp function is not used with the gcc version 2.95.x, compile-warnings result from many files including this header-file.

The reason inline is turned off for this compiler version is that it generates bad code when inlining this code. So you can have a quiet compile, or bad code.

Steve