Skip to content

Commit a338594

Browse files
committed
Completed note
llvm-svn: 47120
1 parent 5429dbf commit a338594

File tree

1 file changed

+0
-26
lines changed

1 file changed

+0
-26
lines changed

clang/NOTES.txt

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -28,32 +28,6 @@ Extensions:
2828

2929
//===---------------------------------------------------------------------===//
3030

31-
When we go to reimplement <tgmath.h>, we should do it more intelligently than
32-
the GCC-supplied header. EDG has an interesting __generic builtin that provides
33-
overloading for C:
34-
http://www.edg.com/docs/edg_cpp.pdf
35-
36-
For example, they have:
37-
#define sin(x) __generic(x,,, sin, sinf, sinl, csin, csinf,csinl)(x)
38-
39-
It's unclear to me why you couldn't just have a builtin like:
40-
__builtin_overload(1, arg1, impl1, impl2, impl3)
41-
__builtin_overload(2, arg1, arg2, impl1, impl2, impl3)
42-
__builtin_overload(3, arg1, arg2, arg3, impl1, impl2, impl3)
43-
44-
Where the compiler would just pick the right "impl" based on the arguments
45-
provided. One nasty detail is that some arithmetic promotions most be done for
46-
use by the tgmath.h stuff, but it would be nice to be able to handle vectors
47-
etc as well without huge globs of macros. With the above scheme, you could
48-
use:
49-
50-
#define sin(x) __builtin_overload(1, x, sin, sinf, sinl, csin, csinf,csinl)(x)
51-
52-
and not need to keep track of which argument to "__generic" corresponds to which
53-
type, etc.
54-
55-
//===---------------------------------------------------------------------===//
56-
5731
To time GCC preprocessing speed without output, use:
5832
"time gcc -MM file"
5933
This is similar to -Eonly.

0 commit comments

Comments
 (0)