| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 139648
|
| |
|
|
|
|
|
|
|
|
| |
clang_getExpansionLocation
but takes into account #line directives coming from preprocessed files.
Patch by Vinay Sajip!
llvm-svn: 139647
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to the consumer without being fully deserialized).
The regression was on compiling boost.python and it was too difficult to get a reduced
test case unfortunately.
Also modify the logic of how objc methods are getting passed to the consumer;
codegen depended on receiving objc methods before the implementation decl.
Since the interesting objc methods are ones with a body and such methods only
exist inside an ObjCImplDecl, deserialize and pass to consumer all the methods
of ObCImplDecl when we see one.
Fixes http://llvm.org/PR10922 & rdar://10117105.
llvm-svn: 139644
|
| |
|
|
| |
llvm-svn: 139643
|
| |
|
|
|
|
| |
explicitly error out on such cases in the backend, at least for the moment.
llvm-svn: 139640
|
| |
|
|
|
|
| |
and preprocessor options (such as macro definitions) first.
llvm-svn: 139638
|
| |
|
|
|
|
| |
inside the IBOutletCollection attribute.
llvm-svn: 139621
|
| |
|
|
| |
llvm-svn: 139620
|
| |
|
|
|
|
|
|
|
| |
This is consistent with the behavior of assigning into a __strong l-value,
and it's also necessary for ensuring that the ivar doesn't end up a dangling
reference. We decided not to change the behavior of "retain" properties, but
just to make them warnings/errors when of block type.
llvm-svn: 139619
|
| |
|
|
|
|
| |
Depends on a llvm tablegen commit.
llvm-svn: 139618
|
| |
|
|
|
|
| |
their semantic attributes and then to take advantage of that.
llvm-svn: 139615
|
| |
|
|
|
|
|
| |
should no longer have the serialization of LangOptions out of sync
with the structure itself (yay).
llvm-svn: 139613
|
| |
|
|
|
|
| |
with extraneous warning produced by gcc but not clang
llvm-svn: 139611
|
| |
|
|
|
|
|
|
| |
-Allow cursor visitation of an attribute using its source range
-Add C++ 'final' and 'override' attributes as cursor kinds
-Simplify the logic that marks 'final' and 'override' attributes as tokens.
llvm-svn: 139609
|
| |
|
|
|
|
|
|
|
|
| |
language options. Use that .def file to declare the LangOptions class
and initialize all of its members, eliminating a source of annoying
initialization bugs.
AST serialization changes are next up.
llvm-svn: 139605
|
| |
|
|
|
|
|
| |
removed in the future.
rdar://10110352 and PR10908
llvm-svn: 139602
|
| |
|
|
| |
llvm-svn: 139600
|
| |
|
|
| |
llvm-svn: 139599
|
| |
|
|
| |
llvm-svn: 139597
|
| |
|
|
|
|
|
|
| |
warning if we are jumping over a variable initialization via a goto.
This fixes a few errors when parsing MFC code with clang.
llvm-svn: 139595
|
| |
|
|
|
|
|
| |
This deletes a bunch of crufty code, and allows more logic sharing
between the analyzer and the warnings.
llvm-svn: 139594
|
| |
|
|
|
|
|
| |
CFGElement. This will allow greatly simplifying the logic in
-Wreturn-type.
llvm-svn: 139593
|
| |
|
|
|
|
|
| |
location with a single comment rather than scattering it in three
places.
llvm-svn: 139592
|
| |
|
|
|
|
|
|
| |
even on architectures that support unaligned access (which is the
only way this is otherwise legal, given that ivars apparently do
not honor alignment attributes).
llvm-svn: 139590
|
| |
|
|
| |
llvm-svn: 139589
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
temporary objects and local variables. When detected, these split the
block, marking the new one as having only the exit block as a successor.
This prevents a large number of false positives in warnings sensitive to
no-return constructs such as -Wreturn-type, and fixes the remainder of
PR10063 along with several variations of this bug that had not been
reported. The test cases are extended across the board to cover these
patterns.
This also checks in a stress test for these types of CFGs. The stress
test declares some 32k variables, a mixture of no-return and normal
destructors. Previously, this resulted in roughly 2500 CFG blocks, but
didn't model any of the no-return destructors. With this patch, it
results in over 33k blocks, many of them now unreachable.
The nice thing about how the analyzer is set up? This causes *no*
regression in performance of building the CFG. It actually in some cases
makes it faster, as best I can benchmark. The analysis for -Wreturn-type
(and any other that cares about no-return code paths) is technically
slower now as it has to look at many more candidate blocks, but it
computes the correct answer. I have more test cases to follow, I think
they all work now. Also I have further work that should dramatically
simplify analyses in the presence of no-return.
llvm-svn: 139586
|
| |
|
|
| |
llvm-svn: 139585
|
| |
|
|
|
|
| |
atomic. This is probably something we should warn about.
llvm-svn: 139584
|
| |
|
|
|
|
|
|
| |
single code path. Use atomic loads and stores where necessary. Load and
store anything of the appropriate size and alignment with primitive
operations instead of going through the call.
llvm-svn: 139580
|
| |
|
|
|
|
|
|
| |
already provided. This required a little bit of clean-up in the way
that VerifyDiagnosticsClient managed ownership of its underlying
"primary" client, because now it will no longer always take ownership.
llvm-svn: 139570
|
| |
|
|
|
|
|
|
|
| |
but there is a corresponding umbrella header in a framework, build the
module on-the-fly so it can be immediately loaded at the import
statement. This is very much proof-of-concept code, with details to be
fleshed out over time.
llvm-svn: 139558
|
| |
|
|
|
|
| |
modernization. No functionality change.
llvm-svn: 139555
|
| |
|
|
|
|
|
| |
behavior.
rdar://10110352 and PR10908
llvm-svn: 139551
|
| |
|
|
| |
llvm-svn: 139550
|
| |
|
|
| |
llvm-svn: 139548
|
| |
|
|
|
|
|
| |
a DeclRefExpr, MemberExpr, etc. with a CastExpr if it is ImplicitCast,
since the implicit cast is the one that is invisible in source code.
llvm-svn: 139547
|
| |
|
|
|
|
| |
modules.
llvm-svn: 139543
|
| |
|
|
| |
llvm-svn: 139540
|
| |
|
|
|
|
|
|
| |
where the compiler will look for module files. Eliminates the
egregious hack where we looked into the header search paths for
modules.
llvm-svn: 139538
|
| |
|
|
| |
llvm-svn: 139523
|
| |
|
|
| |
llvm-svn: 139521
|
| |
|
|
| |
llvm-svn: 139520
|
| |
|
|
| |
llvm-svn: 139519
|
| |
|
|
| |
llvm-svn: 139516
|
| |
|
|
| |
llvm-svn: 139514
|
| |
|
|
| |
llvm-svn: 139513
|
| |
|
|
|
|
|
|
|
|
|
|
| |
modifying directly for the preamble.
This avoids an awful, hard to find, bug where "PreprocessorOpts.DisablePCHValidation = true"
would be persistent for subsequent reparses of the translation unit which would result
in defines, present in command-line but not in the PCH, being ignored.
Fixes rdar://9615399.
llvm-svn: 139512
|
| |
|
|
|
|
|
|
|
| |
variable,
which when set it determines the trial number after which the remapping of files should
take effect.
llvm-svn: 139511
|
| |
|
|
| |
llvm-svn: 139510
|
| |
|
|
| |
llvm-svn: 139509
|