| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rewrite @class declarations that showed up within linkage
specifications because those @class declarations never made it any
place where the rewriter could find them.
Moved all of the ObjC*Decl nodes over to ScopedDecls, so that they can
live in the appropriate top-level or transparent DeclContext near the
top level, e.g., TranslationUnitDecl or LinkageSpecDecl. Objective-C
declarations now show up in a traversal of the declarations in a
DeclContext (they didn't before!). This way, the rewriter finds all
Objective-C declarations within linkage specifications.
llvm-svn: 61966
|
| |
|
|
|
|
| |
Objective-C++).
llvm-svn: 61965
|
| |
|
|
|
|
| |
parameter list. This is work in progress.
llvm-svn: 61964
|
| |
|
|
| |
llvm-svn: 61963
|
| |
|
|
|
|
| |
character after each cached string.
llvm-svn: 61962
|
| |
|
|
| |
llvm-svn: 61961
|
| |
|
|
| |
llvm-svn: 61960
|
| |
|
|
|
|
| |
the comment a little more verbose.
llvm-svn: 61959
|
| |
|
|
| |
llvm-svn: 61958
|
| |
|
|
| |
llvm-svn: 61957
|
| |
|
|
|
|
| |
after the spelling to accomodate sanity checking in LiteralSuppoert.cpp.
llvm-svn: 61956
|
| |
|
|
|
|
| |
Now Users request DwarfWriter through getAnalysisUsage() instead of creating an instance of DwarfWriter object directly.
llvm-svn: 61955
|
| |
|
|
| |
llvm-svn: 61954
|
| |
|
|
|
|
|
| |
are related to setter syntax under -Wreadonly-setter-attrs
to prevent warnings in projects built with gcc.
llvm-svn: 61953
|
| |
|
|
|
|
| |
accesses well. Added a FIXME so we know to revisit this later
llvm-svn: 61951
|
| |
|
|
| |
llvm-svn: 61950
|
| |
|
|
| |
llvm-svn: 61949
|
| |
|
|
| |
llvm-svn: 61948
|
| |
|
|
| |
llvm-svn: 61947
|
| |
|
|
|
|
|
|
|
|
|
| |
functions that don't already have a (dynamic) alloca.
Dynamic allocas cause inefficient codegen and we shouldn't
propagate this (behavior follows gcc). Two existing tests
assumed such inlining would be done; they are hacked by
adding an alloca in the caller, preserving the point of
the tests.
llvm-svn: 61946
|
| |
|
|
|
|
| |
day when more linkage types will be handled.
llvm-svn: 61944
|
| |
|
|
|
|
| |
destroy all contained ObjCMethodDecls in one sweep. This fixes a use-after-free error found by valgrind.
llvm-svn: 61943
|
| |
|
|
|
|
| |
pointing this out
llvm-svn: 61942
|
| |
|
|
|
|
| |
instance methods at the same time.
llvm-svn: 61941
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
introduce a Scope for the body of a tag. This reduces the number of
semantic differences between C and C++ structs and unions, and will
help with other features (e.g., anonymous unions) in C. Some important
points:
- Fields are now in the "member" namespace (IDNS_Member), to keep
them separate from tags and ordinary names in C. See the new test
in Sema/member-reference.c for an example of why this matters. In
C++, ordinary and member name lookup will find members in both the
ordinary and member namespace, so the difference between
IDNS_Member and IDNS_Ordinary is erased by Sema::LookupDecl (but
only in C++!).
- We always introduce a Scope and push a DeclContext when we're
defining a tag, in both C and C++. Previously, we had different
actions and different Scope/CurContext behavior for enums, C
structs/unions, and C++ structs/unions/classes. Now, it's one pair
of actions. (Yay!)
There's still some fuzziness in the handling of struct/union/enum
definitions within other struct/union/enum definitions in C. We'll
need to do some more cleanup to eliminate some reliance on CurContext
before we can solve this issue for real. What we want is for something
like this:
struct X {
struct T { int x; } t;
};
to introduce T into translation unit scope (placing it at the
appropriate point in the IdentifierResolver chain, too), but it should
still have struct X as its lexical declaration
context. PushOnScopeChains isn't smart enough to do that yet, though,
so there's a FIXME test in nested-redef.c
llvm-svn: 61940
|
| |
|
|
| |
llvm-svn: 61939
|
| |
|
|
| |
llvm-svn: 61938
|
| |
|
|
| |
llvm-svn: 61937
|
| |
|
|
|
|
| |
Moved logic to Sema::ProcessPropertyDecl().
llvm-svn: 61936
|
| |
|
|
|
|
|
|
| |
Convert clients to use the standard getDeclContext() API.
Doug, thanks for the review!
llvm-svn: 61935
|
| |
|
|
|
|
|
|
| |
will get its preferred alignment. It has to be careful and cautiously assume
it will just get the ABI alignment. This prevents instcombine from rounding
up the alignment of a load/store without adjusting the alignment of the alloca.
llvm-svn: 61934
|
| |
|
|
|
|
|
| |
llvm-as: t.ll:2:39: function may not return opaque type
%"bwmoyl" = tail call coldcc opaque @g()
^
llvm-svn: 61933
|
| |
|
|
| |
llvm-svn: 61932
|
| |
|
|
|
|
| |
keeping.
llvm-svn: 61931
|
| |
|
|
| |
llvm-svn: 61930
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- ObjCContainerDecl's (ObjCInterfaceDecl/ObjCCategoryDecl/ObjCProtocolDecl), ObjCCategoryImpl, & ObjCImplementation are all DeclContexts.
- ObjCMethodDecl is now a ScopedDecl (so it can play nicely with DeclContext).
- ObjCContainerDecl now does iteration/lookup using DeclContext infrastructure (no more linear search:-)
- Removed ASTContext argument to DeclContext::lookup(). It wasn't being used and complicated it's use from an ObjC AST perspective.
- Added Sema::ProcessPropertyDecl() and removed Sema::diagnosePropertySetterGetterMismatch().
- Simplified Sema::ActOnAtEnd() considerably. Still more work to do.
- Fixed an incorrect casting assumption in Sema::getCurFunctionOrMethodDecl(), now that ObjCMethodDecl is a ScopedDecl.
- Removed addPropertyMethods from ObjCInterfaceDecl/ObjCCategoryDecl/ObjCProtocolDecl.
This passes all the tests on my machine. Since many of the changes are central to the way ObjC finds it's methods, I expect some fallout (and there are still a handful of FIXME's). Nevertheless, this should be a step in the right direction.
llvm-svn: 61929
|
| |
|
|
| |
llvm-svn: 61928
|
| |
|
|
|
|
| |
* Removed trailing whitespace
llvm-svn: 61927
|
| |
|
|
|
|
| |
* Removed trailing whitespace
llvm-svn: 61926
|
| |
|
|
| |
llvm-svn: 61924
|
| |
|
|
|
|
| |
specialization apply only to the tests that are actually testing it.
llvm-svn: 61923
|
| |
|
|
|
|
|
|
|
| |
StringMapEntryInitializer classes. Leave it for the compiler to figure out what
the type is and what "0" should be transformed into.
* Un-disable the unit tests which test the StringMapEntryInitializer class.
llvm-svn: 61922
|
| |
|
|
|
|
|
|
| |
check242, which invalidates this test. This test is an x86-32 ABI test
that is trying to be run in a target-independent way, which is not going
to work very well. Just remove the test.
llvm-svn: 61921
|
| |
|
|
|
|
| |
the same name.
llvm-svn: 61920
|
| |
|
|
| |
llvm-svn: 61919
|
| |
|
|
| |
llvm-svn: 61918
|
| |
|
|
| |
llvm-svn: 61917
|
| |
|
|
| |
llvm-svn: 61916
|
| |
|
|
|
|
|
|
|
| |
loads from allocas that cover the entire aggregate. This handles
some memcpy/byval cases that are produced by llvm-gcc. This triggers
a few times in kc++ (with std::pair<std::_Rb_tree_const_iterator
<kc::impl_abstract_phylum*>,bool>) and once in 176.gcc (with %struct..0anon).
llvm-svn: 61915
|
| |
|
|
|
|
|
|
|
| |
* Fixed but in StringMap::clear()
* Removed trailing whitespace
Original patch by Talin.
llvm-svn: 61914
|