| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
problem where Clang was setting the
hasExternalVisibleDecls() bit for all
DeclContexts it imported. This caused Clang
to make unnecessary calls to
findExternalVisibleDecls() when an external
AST source was installed.
In fact, Clang sometimes interpreted a failure
by one of these spurious calls to find a
Decl as meaning the Decl didn't exist, even
though findExternalLexicalDecls() did locate
that decl. This produced amusing errors of
the form:
-
error: no member named 'b' in 'A'; did you
mean 'b'?
-
Now, if hasExternalVisibleDecls() or
hasExternalLexicalDecls() should be set, the
external AST source must do so itself.
llvm-svn: 135824
|
| |
|
|
|
|
|
|
| |
IsIntegralPromotion should consider the signedness of FromType when
calculating promotions. This, as of now, cannot be exercised on any
platform so there is no corresponding test.
llvm-svn: 135803
|
| |
|
|
| |
llvm-svn: 135775
|
| |
|
|
|
|
| |
and writer to StringRef or std::string, as appropriate.
llvm-svn: 135769
|
| |
|
|
|
|
|
| |
of ASTReader so it can become its own full-fledged class
(eventually). No functionality change.
llvm-svn: 135767
|
| |
|
|
|
|
|
|
|
| |
Introduce and document a new objc_returns_inner_pointer
attribute, and consume it by performing a retain+autorelease
on message receivers when they're not immediately loaded from
an object with precise lifetime.
llvm-svn: 135764
|
| |
|
|
|
|
| |
ArrayRef.
llvm-svn: 135761
|
| |
|
|
|
|
| |
Many thanks to Eli for reducing this great testcase.
llvm-svn: 135752
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
so that we have one, simple way to map from global bit offsets to
local bit offsets. Eliminates a number of loops over the chain, and
generalizes for more interesting bit remappings.
Also, as an amusing oddity, we were computing global bit offsets
*backwards* for preprocessed entities (e.g., the directly included PCH
file in the chain would start at offset zero, rather than the original
PCH that occurs first in translation unit). Even more amusingly, it
made precompiled preambles work, because we were forgetting to adjust
the local bit offset to a global bit offset when storing preprocessed
entity offsets in the ASTUnit. Two wrongs made a right, and now
they're both right.
llvm-svn: 135750
|
| |
|
|
|
|
|
| |
passing a temporary const char* down as the "isysroot" parameter and
then accessing it later. Fixes <rdar://problem/9035180>.
llvm-svn: 135749
|
| |
|
|
|
|
|
|
|
|
|
|
| |
AnalysisBasedWarnings Sema layer and out of the Analysis library itself.
This returns the uninitialized values analysis to a more pure form,
allowing its original logic to correctly detect some categories of
definitely uninitialized values. Fixes PR10358 (again).
Thanks to Ted for reviewing and updating this patch after his rewrite of
several portions of this analysis.
llvm-svn: 135748
|
| |
|
|
|
|
|
| |
their loaded values, although it still worth doing this for __weak
properties to get the autoreleased-return-value optimization.
llvm-svn: 135747
|
| |
|
|
|
|
| |
where it belongs.
llvm-svn: 135746
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
methods, including indirectly overridden methods like those
declared in protocols and categories. There are mismatches
that we would like to diagnose but aren't yet, but this
is fine for now.
I looked at approaches that avoided doing this lookup
unless we needed it, but the infer-related-result-type
checks were doing it anyway, so I left it with the same
fast-path check for no previous declartions of that
selector.
llvm-svn: 135743
|
| |
|
|
|
|
|
|
|
| |
This was previously not-const only because it has to lazily construct a chain
of ivars the first time it is called (and after the chain is invalidated).
In practice, all the clients were just const_casting their const Decls;
all those now-unnecessary const_casts have been removed.
llvm-svn: 135741
|
| |
|
|
|
|
|
|
|
|
| |
C function) implementation
will be rejected with a compilation error in ARC mode, and a compiler warning otherwise.
This may cause breakage in non-arc (and arc) tests which don't expect warning/error. Feel free
to fix the tests, or reverse the patch, if I am unavailable. // rdar://9818354 - WIP
llvm-svn: 135740
|
| |
|
|
|
|
|
|
| |
type IDs into a single place, and make sure that all of the callers
use the appropriate functions to do the mapping. Since the mapping is
still the identity function, this is essentially a no-op.
llvm-svn: 135733
|
| |
|
|
|
|
|
| |
when using ccache and libtool.m4 assumes that the compiler cannot print
warnings about options it knows about.
llvm-svn: 135723
|
| |
|
|
|
|
| |
within the ASTReader (I hope).
llvm-svn: 135720
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
such that every declaration ID loaded from an AST file will go through
a central local -> global mapping function. At present, this change
does nothing, since the local -> global mapping function is the
identity function.
This is the mechanical part of the refactoring; a follow-up patch will
address a few remaining areas where it's not obvious whether we're
dealing with local or global IDs.
llvm-svn: 135711
|
| |
|
|
|
|
| |
and generalizes how CXX base specifiers are identified and loaded by using a ContinuousRangeMap. This also adds a global bit offset (or base) to the PerFileData.
llvm-svn: 135705
|
| |
|
|
|
|
| |
remappings we generate
llvm-svn: 135701
|
| |
|
|
|
|
|
| |
entries incrementally, rather than iterating over the chain when
loading a single AST file.
llvm-svn: 135692
|
| |
|
|
|
|
|
|
| |
actual filename.
Should avoid race conditions. Addresses rdar://9788943.
llvm-svn: 135691
|
| |
|
|
|
|
| |
instead of createTemporaryFileOnDisk.
llvm-svn: 135690
|
| |
|
|
|
|
| |
// rdar://9615045
llvm-svn: 135685
|
| |
|
|
|
|
| |
a warning flag. // rdar://9615045
llvm-svn: 135681
|
| |
|
|
| |
llvm-svn: 135675
|
| |
|
|
|
|
| |
ConstantExpr::getInBoundsGetElementPtr to use ArrayRef.
llvm-svn: 135673
|
| |
|
|
| |
llvm-svn: 135668
|
| |
|
|
| |
llvm-svn: 135667
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 135666
|
| |
|
|
|
|
| |
-Wsign-compare. Cases that previously warn on this will have a different warning emitted from -Wsign-conversion.
llvm-svn: 135664
|
| |
|
|
|
|
| |
Connor Wakamo!
llvm-svn: 135651
|
| |
|
|
|
|
| |
access specifier as public.
llvm-svn: 135649
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
entities generated directly by the preprocessor from those loaded from
the external source (e.g., the ASTReader). By separating these two
sets of entities into different vectors, we allow both to grow
independently, and eliminate the need for preallocating all of the
loaded preprocessing entities. This is similar to the way the recent
SourceManager refactoring treats FileIDs and the source location
address space.
As part of this, switch over to building a continuous range map to
track preprocessing entities.
llvm-svn: 135646
|
| |
|
|
|
|
| |
C++ function call is missing * or & operators on
llvm-svn: 135643
|
| |
|
|
|
|
| |
// pr10411
llvm-svn: 135638
|
| |
|
|
|
|
| |
patch cleans up and generalizes TypeID loading and uses a similar table-lookup to Doug's previous Decl patch.
llvm-svn: 135622
|
| |
|
|
| |
llvm-svn: 135621
|
| |
|
|
|
|
|
|
|
| |
information
including the fully preprocessed source file(s) and command line arguments. The
developer is asked to attach this diagnostic information to a bug report.
llvm-svn: 135614
|
| |
|
|
|
|
| |
passed by reference.
llvm-svn: 135610
|
| |
|
|
|
|
|
|
| |
x86_64-pc-win32-macho is used in conjunction with -no-integrated-as go ahead and
use the Darwin system assembler.
rdar://9785470
llvm-svn: 135604
|
| |
|
|
|
|
|
| |
fails because of lifetime differences of parameter and argument type.
// rdar://9790531
llvm-svn: 135593
|
| |
|
|
| |
llvm-svn: 135585
|
| |
|
|
| |
llvm-svn: 135577
|
| |
|
|
|
|
|
| |
some common llvm types: stringref and smallvector. This cleans up the codebase
quite a bit.
llvm-svn: 135576
|
| |
|
|
|
|
|
|
| |
clang namespace. There are a number of LLVM types that are used pervasively
and it doesn't make sense to keep qualifying them. Start with casting
operators.
llvm-svn: 135574
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WKView.mm from WebKit
This is something of a hack, the problem is as follows:
1. we instantiate both copied of RetainPtr with the two different argument types
(an id and protocol-qualified id).
2. We refer to the ctor of one of the instantiations when introducing global "x",
this causes us to emit an llvm::Function for a prototype whose "this" has type
"RetainPtr<id<bork> >*".
3. We refer to the ctor of the other instantiation when introducing global "y",
however, because it *mangles to the same name as the other ctor* we just use
a bitcasted version of the llvm::Function we previously emitted.
4. We emit deferred declarations, causing us to emit the body of the ctor, however
the body we emit is for RetainPtr<id>, which expects its 'this' to have an IR
type of "RetainPtr<id>*".
Because of the mangling collision, we don't have this case, and explode.
This is really some sort of weird AST invariant violation or something, but hey
a bitcast makes the pain go away.
llvm-svn: 135572
|
| |
|
|
|
|
| |
It doesn't matter in practice, but it is good to be tidy.
llvm-svn: 135571
|