| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 64772
|
| |
|
|
| |
llvm-svn: 64770
|
| |
|
|
| |
llvm-svn: 64769
|
| |
|
|
| |
llvm-svn: 64768
|
| |
|
|
|
|
| |
much pain when compiling the Linux kernel (PR3592).
llvm-svn: 64767
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
diagnostics. I'm not sure I want to keep this, but hey, it's easy
and could be useful or something, even if guarded by a
-fshow-me-tons-of-details option. A silly example is:
#define A B
#define C A
#define D C
int y = D;
We now emit:
t.c:11:9: error: use of undeclared identifier 'B'
int y = D;
^
t.c:9:11: note: instantiated from:
#define D C
^
t.c:8:11: note: instantiated from:
#define C A
^
t.c:7:11: note: instantiated from:
#define A B
^
A more useful example is from tgmath:
t.c:4:9: error: no matching function for call to '__tg_acos'
return acos(x);
^~~~~~~
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:51:17: note: instantiated from:
#define acos(x) __tg_acos(x)
^
... candidate set follows ...
This does not yet print ranges in instantiation info, (e.g. highlighting the
range "__tg_acos(x)" in the last example), but that could be added if we
decide this is a good idea :).
Thoughts and bug reports welcome!
llvm-svn: 64761
|
| |
|
|
| |
llvm-svn: 64760
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
t.c:4:9: error: invalid type 'short *' to __real operator
__tg_choose (__real__(z), C##f(z), (C)(z), C##l(z)),
^
instead of:
t.c:4:9: error: invalid type 'short *' to __real or __imag operator
__tg_choose (__real__(z), C##f(z), (C)(z), C##l(z)),
^
fixing a fixme. It would be even fancier to get the spelling of the token, but I
don't care *that* much :)
llvm-svn: 64759
|
| |
|
|
| |
llvm-svn: 64758
|
| |
|
|
| |
llvm-svn: 64757
|
| |
|
|
| |
llvm-svn: 64756
|
| |
|
|
| |
llvm-svn: 64755
|
| |
|
|
| |
llvm-svn: 64754
|
| |
|
|
| |
llvm-svn: 64752
|
| |
|
|
| |
llvm-svn: 64751
|
| |
|
|
| |
llvm-svn: 64750
|
| |
|
|
|
|
| |
2 out of 2 people on irc prefer them gone :)
llvm-svn: 64749
|
| |
|
|
| |
llvm-svn: 64747
|
| |
|
|
|
|
|
|
|
| |
as the last non-note diagnostic that preceeded them. This ensures
that diagnostics in main files which have notes with locations in
system headers get all the bits and pieces emitted or not in a
unit. This fixes PR3215.
llvm-svn: 64746
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
highlight the arguments to the macro as well as the identifier.
Before:
t.c:3:9: error: no matching function for call to '__tg_acos'; candidates are:
return acos(x);
^~~~
after:
t.c:3:9: error: no matching function for call to '__tg_acos'; candidates are:
return acos(x);
^~~~~~~
llvm-svn: 64743
|
| |
|
|
|
|
|
| |
functions, so if we're declaring a static we should implicitly declare
a library function by the same name (e.g., malloc, strdup). Fixes PR3592.
llvm-svn: 64736
|
| |
|
|
| |
llvm-svn: 64735
|
| |
|
|
| |
llvm-svn: 64727
|
| |
|
|
| |
llvm-svn: 64725
|
| |
|
|
|
|
|
|
| |
possible future "data loss" warnings, and b) makes it intensely
obvious to the user what the impl of these functions do in a
ambiguity error.
llvm-svn: 64724
|
| |
|
|
| |
llvm-svn: 64723
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now no candidates are printed because the 'notes' are in a system header. :(
#include <tgmath-sofar.h>
double foo2(short *x) {
return acos(x);
}
t.c:10:10: error: no matching function for call to '__tg_acos'; candidates are:
return acos(x);
^~~~
1 diagnostic generated.
llvm-svn: 64722
|
| |
|
|
|
|
| |
all the integer types other than char/short to avoid overload ambiguities.
llvm-svn: 64721
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
produces really horrible diagnostics when overload ambiguities
happen:
t.c:10:10: error: call to '__tg_acos' is ambiguous; candidates are:
return acos(x);
^~~~
In file included from t.c:1:
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
A possible fix is to just not use macros for this, which I'll probably go for,
but it would be nice to emit the type at the call, so we know what we asked for!
llvm-svn: 64720
|
| |
|
|
|
|
| |
instance in Sema be a pimpl.
llvm-svn: 64718
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CXXRecordDecl that is used to represent class template
specializations. These are canonical declarations that can refer to
either an actual class template specialization in the code, e.g.,
template<> class vector<bool> { };
or to a template instantiation. However, neither of these features is
actually implemented yet, so really we're just using (and uniqing) the
declarations to make sure that, e.g., A<int> is a different type from
A<float>. Note that we carefully distinguish between what the user
wrote in the source code (e.g., "A<FLOAT>") and the semantic entity it
represents (e.g., "A<float, int>"); the former is in the sugared Type,
the latter is an actual Decl.
llvm-svn: 64716
|
| |
|
|
| |
llvm-svn: 64712
|
| |
|
|
|
|
| |
file.
llvm-svn: 64711
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
makes -emit-html do nice things for code like:
#define FOO(X) y
int FOO(4
);
highlighting the FOO instance as well as the ) on the next line properly.
llvm-svn: 64710
|
| |
|
|
| |
llvm-svn: 64701
|
| |
|
|
| |
llvm-svn: 64700
|
| |
|
|
| |
llvm-svn: 64692
|
| |
|
|
|
|
| |
nonfragile abi.
llvm-svn: 64690
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Define pow[lf]?, sqrt[lf]? as builtins.
- Add -fmath-errno option which binds to LangOptions.MathErrno
- Add new builtin flag Builtin::Context::isConstWithoutErrno for
functions which can be marked as const if errno isn't respected for
math functions. Sema automatically marks these functions as const
when they are defined, if MathErrno=0.
- IRgen uses const attribute on sqrt and pow library functions to
decide if it can use the llvm intrinsic.
llvm-svn: 64689
|
| |
|
|
|
|
|
|
| |
Doug: please verify that it is expected that LastIdx can be less that
NumInits. And perhaps add a comment so that Chris doesn't break your
code. :)
llvm-svn: 64688
|
| |
|
|
|
|
| |
extensions). This caught a couple bugs in our test suite :)
llvm-svn: 64686
|
| |
|
|
| |
llvm-svn: 64684
|
| |
|
|
|
|
|
|
|
|
|
| |
emit two volatile loads for:
typedef __attribute__(( ext_vector_type(4) )) float float4;
float test(volatile float4 *P) {
return P->x+P->y;
}
llvm-svn: 64683
|
| |
|
|
|
|
| |
suggestion
llvm-svn: 64681
|
| |
|
|
| |
llvm-svn: 64680
|
| |
|
|
|
|
| |
We now pass all the deprecation tests in the objc.dg suite.
llvm-svn: 64679
|
| |
|
|
|
|
| |
to the LIBBUILTIN macro
llvm-svn: 64676
|
| |
|
|
|
|
| |
- Fix test case to not only have negative tests.
llvm-svn: 64674
|
| |
|
|
| |
llvm-svn: 64673
|
| |
|
|
| |
llvm-svn: 64672
|