| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
template parameter.
llvm-svn: 184884
|
|
|
|
|
|
|
|
|
|
|
| |
When the decl that we're getting alignment for is a FieldDecl, and the field's
parent record is invalid, skip the actual field alignment calculation (and
return 1-byte alignment in the general case).
Also, assert in in getASTRecordLayout that the decl is valid. This was
inspired by PR16292; see also r184581 and r184751.
llvm-svn: 184883
|
|
|
|
|
|
|
|
|
|
| |
A default template-argument shall not be specified in a friend template
declaration.
Interestingly, we properly handled default template arguments on friend
class members but not on just friend classes.
llvm-svn: 184882
|
|
|
|
|
|
| |
WenHan Gu!
llvm-svn: 184875
|
|
|
|
| |
llvm-svn: 184873
|
|
|
|
|
|
| |
when checking for overloads in C++1y.
llvm-svn: 184865
|
|
|
|
|
|
|
| |
is declared to have 'assign' attribute.
// rdar://14212998
llvm-svn: 184863
|
|
|
|
| |
llvm-svn: 184862
|
|
|
|
|
|
| |
the frontend. We don't want to respect the -disable-free flag here.
llvm-svn: 184861
|
|
|
|
| |
llvm-svn: 184857
|
|
|
|
| |
llvm-svn: 184856
|
|
|
|
| |
llvm-svn: 184855
|
|
|
|
| |
llvm-svn: 184851
|
|
|
|
|
|
|
|
| |
this code. These aren't technically standard predefines for the platform
but apparantly lots of folks use them as they show up within LLVM's own
codebase. ;] This may even fix some self host issues w/ the JIT!!!
llvm-svn: 184830
|
|
|
|
|
|
|
|
| |
Original message:
Use the new PathV2 instead of implementing the logic in clang.
llvm-svn: 184825
|
|
|
|
|
|
| |
This reverts commit 184803 while I debug the failures on the bots.
llvm-svn: 184818
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-apply r184511, reverted in r184561, with the trivial default constructor
fast path removed -- it turned out not to be necessary here.
Certain expressions can cause a constructor invocation to zero-initialize
its object even if the constructor itself does no initialization. The
analyzer now handles that before evaluating the call to the constructor,
using the same "default binding" mechanism that calloc() uses, rather
than simply ignoring the zero-initialization flag.
<rdar://problem/14212563>
llvm-svn: 184815
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to make sure virtual base classes are always initialized once,
the AST contains initializers for the base class in /all/ of its
descendents, not just the immediate descendents. However, at runtime,
the most-derived object is responsible for initializing all the virtual
base classes; all the other initializers will be ignored.
The analyzer now checks to see if it's being called from another base
constructor, and if so does not perform virtual base initialization.
<rdar://problem/14236851>
llvm-svn: 184814
|
|
|
|
|
|
|
| |
Specifically, CallExpr::getCalleeDecl() can return null, so make sure to
handle that correctly.
llvm-svn: 184813
|
|
|
|
|
|
| |
usage of clang as a library.
llvm-svn: 184812
|
|
|
|
|
|
|
|
|
|
| |
numbers as we deserialize class template partial specializations. We can't
assume that the old sequence numbers will work.
The sequence numbers are still deterministic, but are now a lot less
predictable for class template partial specializations in modules/PCH.
llvm-svn: 184811
|
|
|
|
|
|
|
| |
Using "delete" on a pointer to an incomplete type can't throw.
While I'm here, clean up the signature of the canCalleeThrow() helper.
llvm-svn: 184810
|
|
|
|
| |
llvm-svn: 184807
|
|
|
|
| |
llvm-svn: 184804
|
|
|
|
| |
llvm-svn: 184803
|
|
|
|
|
|
|
|
| |
Use castAs<> where appropriate. Don't check conditionals which are
always true. Delete a bit of dead code. Reindent a bunch of code which
is no longer guarded by an if statement.
llvm-svn: 184801
|
|
|
|
| |
llvm-svn: 184795
|
|
|
|
| |
llvm-svn: 184791
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of using -performSelectorXXX.
-performSelector: and friends return a value that is boxed as an Objective-C
pointer. Sometimes it is an Objective-C pointer, sometimes it isn't.
Some clients may wish to silence this warning based on calling
this method.
Fixes <rdar://problem/14147304>
llvm-svn: 184789
|
|
|
|
|
|
|
|
|
|
|
| |
account ImportDecls.
The top-level hash is used to determine if we need to update the global code-completion results.
ImportDecls did not affect the hash so a newly introduced ImportDecl would not trigger an update of the global results.
rdar://14202797
llvm-svn: 184782
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changes the mangling of local static variables/etc. inside blocks
to do something simple and sane. This avoids depending on the way we mangle
blocks, which isn't really appropriate here.
John, please take a look at this to make sure the mangling I chose is sane.
Fixes <rdar://problem/14074423>.
llvm-svn: 184780
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At this point, it's clear that the MSVC mangler uses the type-as-written
instead of the canonical type, so this should bring us closer to MSVC.
The main thrust of this change is to fix the way we mangle decayed array
parameters of function pointer parameters. With a DecayedType sugar
node, this code can now be much simpler.
Fixes PR16096.
This also fixes a separate issue that Richard spotted in review.
Because separate declarations of the same entity can be spelled and
mangled differently, MSVC always mangles the earliest declaration in an
attempt to avoid link errors. Clang now does the same.
Reviewers: rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D844
llvm-svn: 184777
|
|
|
|
|
|
|
|
|
|
| |
passed to avoid the
"argument unused during compilation" warning.
rdar://14240566
llvm-svn: 184776
|
|
|
|
| |
llvm-svn: 184775
|
|
|
|
| |
llvm-svn: 184774
|
|
|
|
| |
llvm-svn: 184770
|
|
|
|
|
|
|
|
|
|
|
| |
Add a debug checker that is useful to understand how the ExplodedGraph is
built; it can be triggered using the following command:
clang -cc1 -analyze -analyzer-checker=debug.ViewExplodedGraph my_program.c
A patch by Béatrice Creusillet!
llvm-svn: 184768
|
|
|
|
|
|
|
|
| |
The way we decide which file to remove is fairly odd. I took a quick look at
maybe changing that, but it would be a more work than I want to put at this
right now, so I left pair of FIXMEs.
llvm-svn: 184766
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The goal of this sugar node is to be able to look at an arbitrary
FunctionType and tell if any of the parameters were decayed from an
array or function type. Ultimately this is necessary to implement
Microsoft's C++ name mangling scheme, which mangles decayed arrays
differently from normal pointers.
Reviewers: rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D1014
llvm-svn: 184763
|
|
|
|
|
|
| |
namespaces to try for potential typo corrections.
llvm-svn: 184762
|
|
|
|
|
|
| |
This will prevent breakage when I introduce the DecayedType sugar node.
llvm-svn: 184755
|
|
|
|
| |
llvm-svn: 184753
|
|
|
|
| |
llvm-svn: 184743
|
|
|
|
|
|
|
| |
CheckParmForFunctionDef performs standard checks for type completeness
and other things like a destructor check for the MSVC++ ABI.
llvm-svn: 184740
|
|
|
|
|
|
| |
atexit.
llvm-svn: 184708
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
constructing a lookup table.
Previously, buildLookup would add lookup table entries for each item lexically
within the DC, and adding the first entry with a given name would trigger the
external source to add all its entries with that name. Then buildLookup would
carry on and re-add those entries all over again.
Instead, follow a simple rule: a declaration from an external source is only
ever made visible by the external source. One exception to this: since we don't
usually build a lookup table for the TU in C, and we never serialize one, we
don't expect the external source to provide lookups in the TU in C, so we build
those ones ourselves.
llvm-svn: 184696
|
|
|
|
|
|
|
|
|
|
| |
There's still a problem here - since we're not appropriately using the
signedness/range of the enum to chooset the encoding and emission of
enumerators, but GCC has some bugs around this too so I assume that's
not /such/ a high priority though I may get to it soon out of
completeness.
llvm-svn: 184695
|
|
|
|
| |
llvm-svn: 184689
|
|
|
|
|
|
|
|
| |
Original patch by Fariborz Jahanian; extended by me.
Fixes rdar://14124644
llvm-svn: 184688
|
|
|
|
|
|
|
| |
whether they replace any existing lookups in the context, rather than
accumulating a bunch of lookup results referring to the same entity.
llvm-svn: 184679
|