| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
before evaluating it.
llvm-svn: 212090
|
|
|
|
| |
llvm-svn: 211143
|
|
|
|
| |
llvm-svn: 210751
|
|
|
|
|
|
| |
functional change.
llvm-svn: 210750
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add driver and frontend support for the GCC -Wframe-larger-than=bytes warning.
This is the first GCC-compatible backend diagnostic built around LLVM's
reporting feature.
This commit adds infrastructure to perform reverse lookup from mangled names
emitted after LLVM IR generation. We use that to resolve precise locations and
originating AST functions, lambdas or block declarations to produce seamless
codegen-guided diagnostics.
An associated change, StringMap now maintains unique mangled name strings
instead of allocating copies. This is a net memory saving in C++ and a small
hit for C where we no longer reuse IdentifierInfo storage, pending further
optimisation.
llvm-svn: 210293
|
|
|
|
| |
llvm-svn: 208517
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We never aka vector types because our attributed syntax for it is less
comprehensible than the typedefs. This leaves the user in the dark when
the typedef isn't named that well.
Example:
v2s v; v4f w;
w = v;
The naming in this cases isn't even that bad, but the error we give is
useless without looking up the actual typedefs.
t.c:6:5: error: assigning to 'v4f' from incompatible type 'v2s'
Now:
t.c:6:5: error: assigning to 'v4f' (vector of 4 'float' values) from
incompatible type 'v2s' (vector of 2 'int' values)
We do this for all diagnostics that print a vector type.
llvm-svn: 207267
|
|
|
|
|
|
|
| |
Some files had CRLF line terminators, some only had a mixture of
CRLF and LF. Switch to LF.
llvm-svn: 202659
|
|
|
|
|
|
| |
semantic attributes easier (and not require hard-coded strings). This requires a getSpelling() function on the Attr class, which is table-driven. Updates a handful of cases where a hard-coded string was being used to test the functionality out. Updating associated test cases for the improved quoting.
llvm-svn: 198055
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
In general, this type node can be used to represent any type adjustment
that occurs implicitly without losing type sugar. The immediate use of
this is to adjust the calling conventions of member function pointer
types without breaking template instantiation.
Fixes PR17996.
Reviewers: rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D2332
llvm-svn: 196451
|
|
|
|
| |
llvm-svn: 195714
|
|
|
|
|
|
|
|
| |
In the test case one type is coming from a typedef with no default arg, the
other has the default arg. Taking the default arg from the typedef crashes, so
always use the real template paramter declaration. PR17510.
llvm-svn: 192202
|
|
|
|
|
|
|
| |
template. Passing around dependent types can lead to integral arguments that
cannot be evaluated.
llvm-svn: 186757
|
|
|
|
|
|
| |
specifying the vector size.
llvm-svn: 185784
|
|
|
|
| |
llvm-svn: 185715
|
|
|
|
|
|
|
|
|
|
|
| |
ASTDumper was already trying to do this & instead got an implicit bool
conversion by surprise (thus printing out 0 or 1 instead of the name of
the declaration). To avoid that issue & simplify call sites, simply make
it the normal/expected operator<<(raw_ostream&, ...) overload & simplify
all the existing call sites. (bonus: this function doesn't need to be a
member or friend, it's just using public API in DeclarationName)
llvm-svn: 181832
|
|
|
|
|
|
|
|
|
| |
This is a fix for PR15895, where Clang will crash when trying to print a
template diff and the template uses an address of operator. This resulted
from expecting a DeclRefExpr when the Expr could have also been
UnaryOperator->DeclRefExpr.
llvm-svn: 181365
|
|
|
|
| |
llvm-svn: 178613
|
|
|
|
|
|
|
|
|
|
| |
expressions are integer. It can also be ValueDecl expressions
Use the type information from the TemplateParameterList instead
Patch by Olivier Goffart!
llvm-svn: 178611
|
|
|
|
|
|
|
|
|
|
| |
When support was added for declaration arguments, the case of variadic
declaration arguments was not supported. This patch fixes that problem by
not crashing when certain ValueDecl's are null.
Patch by Olivier Goffart!
llvm-svn: 178610
|
|
|
|
|
|
|
|
|
|
|
|
| |
Value depenedent expressions for default arguments cannot be evaluated.
Instead, use the desugared template type to get an argument expression that
can be used. This is needed for both integer and declaration arguements.
Also, move this common code into a separate function.
Patch by Olivier Goffart!
llvm-svn: 178609
|
|
|
|
|
|
|
| |
TemplateSpecializationType during template type diffing. This allows the
correct printing of diffing qualifiers on templates.
llvm-svn: 177809
|
|
|
|
|
|
|
|
|
|
| |
When the template argument is both default and value dependent, the expression
retrieved for the default argument cannot be evaluated, thus never matching
any argument value. To get the proper value, get the template argument
from the desugared template specialization. Also, output the original
expression to provide more information about the argument mismatch.
llvm-svn: 177209
|
|
|
|
|
|
| |
This cleans up the Clang -Werror build that was broken by r177180.
llvm-svn: 177184
|
|
|
|
|
|
|
| |
difference is stored inside a DiffNode. This should not change any
diagnostic messages.
llvm-svn: 177180
|
|
|
|
|
|
| |
always known at compile time.
llvm-svn: 177110
|
|
|
|
| |
llvm-svn: 176153
|
|
|
|
| |
llvm-svn: 175897
|
|
|
|
| |
llvm-svn: 175896
|
|
|
|
| |
llvm-svn: 175895
|
|
|
|
|
|
| |
PrintTemplateArgumentList.
llvm-svn: 175894
|
|
|
|
| |
llvm-svn: 175699
|
|
|
|
|
|
|
|
|
|
|
| |
them the same if they are actually the same; having the same name isn't enough.
Similar to r174013, template template arguments were also mistakenly considered
the same when they had the same name but were in different namespaces.
In addition, when printing template template arguments, use the qualified name
if the regular name is the same.
llvm-svn: 174029
|
|
|
|
|
|
|
| |
same if they are actually the same; having the same name isn't
enough. Fixes <rdar://problem/12931988>.
llvm-svn: 174013
|
|
|
|
|
|
| |
brought into 'clang' namespace by clang/Basic/LLVM.h
llvm-svn: 172323
|
|
|
|
|
|
|
| |
case we can't find an exact width to use. Fixes crash in
<rdar://problem/12456626>.
llvm-svn: 170951
|
|
|
|
|
|
|
| |
appears to currently be benign (we happen to test the flags in the right
order, so we never depend on the uninitialized value).
llvm-svn: 170640
|
|
|
|
|
|
| |
against itself. PR14489.
llvm-svn: 170474
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uncovered.
This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.
I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.
llvm-svn: 169237
|
|
|
|
|
|
| |
PR14342.
llvm-svn: 168005
|
|
|
|
| |
llvm-svn: 167252
|
|
|
|
|
|
| |
now be printed with highlighting.
llvm-svn: 164843
|
|
|
|
|
|
| |
functions. Reworked one of the conditionals. No functional changes.
llvm-svn: 164839
|
|
|
|
|
|
|
|
|
|
|
|
| |
enough information so we can mangle them correctly in cases involving
dependent parameter types. (This specifically impacts cases involving
null pointers and cases involving parameters of reference type.)
Fix the mangler to use this information instead of trying to scavenge
it out of the parameter declaration.
<rdar://problem/12296776>.
llvm-svn: 164656
|
|
|
|
|
|
|
|
|
| |
and remove ASTContext reference (which was frequently bound to a dereferenced
null pointer) from the recursive lump of printPretty functions. In so doing,
fix (at least) one case where we intended to use the 'dump' mode, but that
failed because a null ASTContext reference had been passed in.
llvm-svn: 162011
|
|
|
|
|
|
| |
back to regular type printing.
llvm-svn: 159976
|
|
|
|
| |
llvm-svn: 159218
|
|
|
|
|
|
|
|
|
|
|
|
| |
comparison between two templated types when they both appear in a diagnostic.
Type elision will remove indentical template arguments, which can be disabled
with -fno-elide-type. Cyan highlighting is applied to the differing types.
For more formatting, -fdiagnostic-show-template-tree will output the template
type as an indented text tree, with differences appearing inline. Template
tree works with or without type elision.
llvm-svn: 159216
|
|
|
|
|
|
|
|
|
|
| |
(Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris Lattner
llvm-svn: 152536
|
|
|
|
|
|
| |
and lots of tidying up.
llvm-svn: 152392
|