| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
builtin types (When requested). This is another step toward making
ASTUnit build the ASTContext as needed when loading an AST file,
rather than doing so after the fact. No actual functionality change (yet).
llvm-svn: 138985
|
|
|
|
|
|
|
|
|
| |
itself upon initialization, such as using itself within its own copy constructor.
struct S {};
S s(s);
llvm-svn: 138969
|
|
|
|
|
|
|
|
|
|
| |
synthesis. This new feature is currently placed under
-fobjc-default-synthesize-properties option
and is off by default pending further testing.
It will become the default feature soon.
// rdar://8843851
llvm-svn: 138913
|
|
|
|
|
|
| |
No change in functionality.
llvm-svn: 138742
|
|
|
|
|
|
| |
This matches gcc's logic. Second half of PR10661.
llvm-svn: 138730
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
loads the named module. The syntax itself is intentionally hideous and
will be replaced at some later point with something more
palatable. For now, we're focusing on the semantics:
- Module imports are handled first by the preprocessor (to get macro
definitions) and then the same tokens are also handled by the parser
(to get declarations). If both happen (as in normal compilation),
the second one is redundant, because we currently have no way to
hide macros or declarations when loading a module. Chris gets credit
for this mad-but-workable scheme.
- The Preprocessor now holds on to a reference to a module loader,
which is responsible for loading named modules. CompilerInstance is
the only important module loader: it now knows how to create and
wire up an AST reader on demand to actually perform the module load.
- We search for modules in the include path, using the module name
with the suffix ".pcm" (precompiled module) for the file name. This
is a temporary hack; we hope to improve the situation in the
future.
llvm-svn: 138679
|
|
|
|
|
|
|
|
| |
old version had the checks scattered across the code, missed some checks, and had a couple nasty bugs in existing checks.
Fixes PR10648 and another similar accepts-invalid bug.
llvm-svn: 138398
|
|
|
|
|
|
|
|
| |
For the test case added to function-redecl.cpp, we were previously complaining
about a mismatch in the parameter types, since the definition used the
typedef'd type.
llvm-svn: 138318
|
|
|
|
|
|
| |
This matches gcc's logic. Half of PR10661.
llvm-svn: 138240
|
|
|
|
|
|
| |
failures are resolved.
llvm-svn: 138234
|
|
|
|
| |
llvm-svn: 138049
|
|
|
|
|
|
|
|
|
|
| |
to modernity. Instead of passing down individual
context objects from parser to sema, establish decl
context in parser and have sema access current context
as needed. I still need to take of Doug's comment for
minor cleanups.
llvm-svn: 138040
|
|
|
|
| |
llvm-svn: 138024
|
|
|
|
| |
llvm-svn: 138023
|
|
|
|
|
|
| |
uncorrected identifier. Fixes a problem pointed out by Eli.
llvm-svn: 137987
|
|
|
|
|
|
| |
diagnosing invalid function redeclarations.
llvm-svn: 137966
|
|
|
|
| |
llvm-svn: 137653
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Microsoft mode. A new AST node is introduced: ClassScopeFunctionSpecialization. This node holds a FunctionDecl that is not yet specialized; then during the class template instantiation the ClassScopeFunctionSpecialization will spawn the actual function specialization.
Example:
template <class T>
class A {
public:
template <class U> void f(U p) { }
template <> void f(int p) { } // <== class scope specialization
};
This extension is necessary to parse MSVC standard C++ headers, MFC and ATL code.
BTW, with this feature in, clang can parse (-fsyntax-only) all the MSVC 2010 standard header files without any error.
llvm-svn: 137573
|
|
|
|
| |
llvm-svn: 137491
|
|
|
|
|
|
|
| |
done and is likely to not work well anyway; take away this unnecessary
complexity.
llvm-svn: 137465
|
|
|
|
|
|
|
|
|
| |
ASTContext with accessors/mutators. The only functional change is that
the AST writer won't bother writing the id/Class/SEL redefinition type
if it hasn't been explicitly set; previously, it ended up being
written as a synonym for the built-in id/Class/SEL.
llvm-svn: 137349
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Having a function declaration and definition with different types for a
parameter where the types have same (textual) name can occur when an unqualified
type name resolves to types in different namespaces in each location.
The error messages have been extended by adding notes that point to the first
parameter of the function definition that doesn't match the declaration, instead
of a generic "member declaration nearly matches". The generic message is still
used in cases where the mismatch is not in the paramenter list, such as
mismatched cv qualifiers on the member function itself.
llvm-svn: 136891
|
|
|
|
|
|
|
|
| |
integer, and initialise its TypeSourceInfo. The initialisation fixes a
crash when using pre-compiled preambles with C++ code-completion. From
Erik Verbruggen! Fixes PR10511.
llvm-svn: 136786
|
|
|
|
| |
llvm-svn: 136389
|
|
|
|
|
|
|
|
|
| |
we could turn this into an on-disk hash table so we don't load the
whole thing the first time we need it. However, it tends to be very,
very small (i.e., empty) for most precompiled headers, so it isn't all
that interesting.
llvm-svn: 136352
|
|
|
|
|
|
|
| |
in few more places and in each instance, fix up
the type to the expected type. // rdar://9603056
llvm-svn: 136103
|
|
|
|
|
|
| |
to declare a static object. // rdar://9603056
llvm-svn: 135970
|
|
|
|
|
|
|
|
| |
LLVM.h imports
them into the clang namespace.
llvm-svn: 135852
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
is still terrible here because typo correction is not behaving well in
the presence of overloaded functions.
llvm-svn: 135128
|
|
|
|
|
|
| |
parsing lambda expressions, from John Freeman!
llvm-svn: 135090
|
|
|
|
|
|
| |
Uhrain! Fixes PR10318.
llvm-svn: 135086
|
|
|
|
|
|
|
| |
implicit ivar accesses to go through the 'self' variable
rather than the real 'self' for the method. // rdar://9730771
llvm-svn: 134992
|
|
|
|
|
|
| |
code so that they only occur in a single place. No functionality change.
llvm-svn: 134961
|
|
|
|
|
|
| |
functions. Fixes <rdar://problem/9731999>.
llvm-svn: 134897
|
|
|
|
| |
llvm-svn: 134377
|
|
|
|
| |
llvm-svn: 134305
|
|
|
|
|
|
| |
a virtual function in the base class to be inserted into the derived class function list to prevent extra errors every time the derived class is used.
llvm-svn: 134251
|
|
|
|
|
|
| |
classes, the tag types need to have an associated access specifier, and inside function definitions, they need to be included in the declarations of the DeclStmt. These issues manifested as assertions during template instantiation, and also in a WIP constexpr patch.
llvm-svn: 134250
|
|
|
|
|
|
|
| |
replace the existing declaration appropriately. Patch by Jordy Rose,
fixes PR10013 / <rdar://problem/9584157>.
llvm-svn: 134097
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vector<int>
to
std::vector<int>
Patch by Kaelyn Uhrain, with minor tweaks + PCH support from me. Fixes
PR5776/<rdar://problem/8652971>.
Thanks Kaelyn!
llvm-svn: 134007
|
|
|
|
|
|
|
|
| |
Sema::GetTypeForDeclarator and remove its 'OwnedDecl' out parameter.
No functionality change.
llvm-svn: 133986
|
|
|
|
|
|
|
|
| |
inside GetTypeForDeclarator.
No functionality change.
llvm-svn: 133985
|
|
|
|
|
|
|
|
| |
'ownership', not 'lifetime'.
rdar://9477613.
llvm-svn: 133779
|
|
|
|
|
|
| |
same declaration. Templatize dropAttr for general use.
llvm-svn: 133724
|
|
|
|
|
|
| |
// rdar://9538608
llvm-svn: 133721
|
|
|
|
|
|
| |
declared variable and ignore it. // rdar://9538608
llvm-svn: 133654
|
|
|
|
|
|
|
|
|
| |
(or follow up) extern declaration with weak_import as
an actual definition. make clang follows this behavior.
// rdar://9538608
llvm-gcc treats an extern declaration with weak_import
llvm-svn: 133450
|
|
|
|
|
|
|
|
|
| |
storage specifier is different from the storage specifier on the
template. If that storage specifier is the same, then we only warn.
Thanks to John for the prodding.
llvm-svn: 133236
|
|
|
|
|
|
|
| |
specifier on an explicit specialization to a warning, since neither
EDG nor GCC diagnose this code as ill-formed.
llvm-svn: 133232
|