Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: m-labs/clang-lm32
base: 783a78c
...
head fork: m-labs/clang-lm32
compare: 3f22a64
Checking mergeability… Don't worry, you can still create the pull request.
This comparison is big! We're only showing the most recent 250 commits
Commits on Oct 24, 2011
@d0k d0k Fix mismatched new[]/delete[].
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142803 91177308-0d34-0410-b5e6-96231b3b80d8
2a04f1c
@akyrtzi akyrtzi [libclang] Make sure we don't try to erase past the StoredDiagnostics…
… vector.

Ted came upon the bug but I couldn't make a test out of it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142805 91177308-0d34-0410-b5e6-96231b3b80d8
3e9d326
Fariborz Jahanian Minor refactoring of my last patch. Per Doug's suggestion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142807 91177308-0d34-0410-b5e6-96231b3b80d8
9158902
@zygoloid zygoloid Constant expression evaluation: factor out VarDecl initializer evalua…
…tion and

caching.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142812 91177308-0d34-0410-b5e6-96231b3b80d8
03f9611
@pcc pcc Simplify parsing ellipsis in Parser::ParseAlignArgument, spotted by D…
…oug.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142814 91177308-0d34-0410-b5e6-96231b3b80d8
fe9b2a8
Anna Zaks [analyzer] Pass external Dst set to NodeBuilder
This moves the responsibility for storing the output node set from the
builder to the clients. The builder is just responsible for transforming
an input set into the output set: {SrcSet/SrcNode} -> {Frontier}.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142826 91177308-0d34-0410-b5e6-96231b3b80d8
1aae01a
Anna Zaks [analyzer] Use a temporary builder in CheckerContext.
First step toward removing the global Stmt builder. Added several transitional methods (like takeNodes/addNodes).
+ Stop early if the set of exploded nodes for the next iteration is empty.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142827 91177308-0d34-0410-b5e6-96231b3b80d8
8ff5c41
Anna Zaks [analyzer] Convert VisitUnaryOperator to use short lived Node builders
To convert iteratively, we take the nodes the local builder will
process from the from the global builder and add the generated nodes
after the short lived builder is done. PureStmtNodeBuilder is the
one we should eventually use everywhere. Added Stmt index and Builder
context as ExprEngine globals. To avoid passing them around.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142828 91177308-0d34-0410-b5e6-96231b3b80d8
8ad8c54
Anna Zaks [analyzer] Convert more functions (ex:evalBind()) to iterative builders
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142829 91177308-0d34-0410-b5e6-96231b3b80d8
6b6152b
Anna Zaks [analyzer] Convert VisitDeclStmt to use local node builder.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142830 91177308-0d34-0410-b5e6-96231b3b80d8
d231d01
Anna Zaks [analyzer] Convert ExprEngine::visit() to use short lived builders.
This commit removes the major functional dependency on the ExprEngine::Builder
member variable.

In some cases the code became more verbose. Particularly, we call takeNodes()
and addNodes() to move responsibility for the nodes from one builder to another.
This will get simplified later on.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142831 91177308-0d34-0410-b5e6-96231b3b80d8
ebae6d0
@zygoloid zygoloid In accordance with the C89, C99 and C++98 standards, ICEs can only co…
…ntain

floating-point literals if they are the immediate operands of casts.
ImplicitCastExpr is not a cast in the language-standards sense.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142832 91177308-0d34-0410-b5e6-96231b3b80d8
32cb471
@zygoloid zygoloid Constant expression evaluation: factor out handling of ignored values.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142835 91177308-0d34-0410-b5e6-96231b3b80d8
8327fad
@chandlerc chandlerc Switch to a more natural formatting of the macro name printing.
Suggested by John McCall.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142836 91177308-0d34-0410-b5e6-96231b3b80d8
9875c60
@zygoloid zygoloid Constant expression evaluation: evaluate lvalues as lvalues, and rval…
…ues as

rvalues, as C++11 constant evaluation semantics require. DeclRefs referring to
references can now use the normal initialization-caching codepath, which
incidentally fixes a crash in cyclic initialization of references.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142844 91177308-0d34-0410-b5e6-96231b3b80d8
41bf4f3
Anna Zaks [analyzer] Remove more dependencies from global Builder
- OSAtomicChecker
- ExprEngine::processStmt

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142846 91177308-0d34-0410-b5e6-96231b3b80d8
f185cc1
Anna Zaks [analyzer] Completely remove the global Builder object.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142847 91177308-0d34-0410-b5e6-96231b3b80d8
056c4b4
Anna Zaks [analyzer] Remove the old StmtNodeBuilder.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142848 91177308-0d34-0410-b5e6-96231b3b80d8
cca79db
Anna Zaks [analyzer] Node builders cleanup + comments
Renamed PureNodeBuilder->StmtNodeBuilder.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142849 91177308-0d34-0410-b5e6-96231b3b80d8
aa0aeb1
Douglas Gregor When we perform a lookup for a dependent name that is a member of an
unknown specialization, treat this the same way as if the name were
not found in the current instantiation. No actual functionality
change, since apparently nothing depends on this.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142862 91177308-0d34-0410-b5e6-96231b3b80d8
3eafbb8
Eli Friedman Don't try to emit CK_LValueBitCast casts as constants. PR9558.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142863 91177308-0d34-0410-b5e6-96231b3b80d8
b000459
Douglas Gregor Rework Microsoft __if_exists/__if_not_exists parsing and semantic
analysis to separate dependent names from non-dependent names. For
dependent names, we'll behave differently from Visual C++:

  - For __if_exists/__if_not_exists at class scope, we'll just warn
    and then ignore them.
  - For __if_exists/__if_not_exists in statements, we'll treat the
    inner statement as a compound statement, which we only instantiate
    in templates where the dependent name (after instantiation)
    exists. This behavior is different from VC++, but it's as close as
    we can get without encroaching ridiculousness.

The latter part (dependent statements) is not yet implemented.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142864 91177308-0d34-0410-b5e6-96231b3b80d8
3896fc5
@zygoloid zygoloid Add explanatory comments for ICE checking in C99 mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142866 91177308-0d34-0410-b5e6-96231b3b80d8
0583014
@zygoloid zygoloid Revert r142844, it broke selfhost. The problem appears to be a missing
lvalue-to-rvalue conversion on the LHS operand of '->'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142872 91177308-0d34-0410-b5e6-96231b3b80d8
436c889
Devang Patel Do not drop type qualifiers in -flimit-debug-info mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142873 91177308-0d34-0410-b5e6-96231b3b80d8
4142251
Dan Gohman Remove the SystemZ backend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142879 91177308-0d34-0410-b5e6-96231b3b80d8
0986eb5
Commits on Oct 25, 2011
Dan Gohman Remove the Blackfin backend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142881 91177308-0d34-0410-b5e6-96231b3b80d8
78cf13d
Dan Gohman Remove more SystemZ (s390) tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142883 91177308-0d34-0410-b5e6-96231b3b80d8
1592c6c
@zygoloid zygoloid Clean up, as suggested by John.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142884 91177308-0d34-0410-b5e6-96231b3b80d8
98326ed
@krememek krememek Add source-level dominators analysis. Patch by Guoping Long!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142885 91177308-0d34-0410-b5e6-96231b3b80d8
58f6f1e
@akyrtzi akyrtzi Use assert(0) instead of duplicating the check, suggestion by Anna.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142886 91177308-0d34-0410-b5e6-96231b3b80d8
82ccbe7
@akyrtzi akyrtzi [PCH] When visiting preprocessed entities, make it possible to avoid …
…deserializing

preprocessed entities that are #included in the range that we are interested.

This is useful when we are interested in preprocessed entities of a specific file, e.g
when we are annotating tokens. There is also an optimization where we cache the last
result of PreprocessingRecord::getPreprocessedEntitiesInRange and we re-use it if
there is a call with the same range as before.

rdar://10313365

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142887 91177308-0d34-0410-b5e6-96231b3b80d8
f226ff9
@zygoloid zygoloid Don't forget the lvalue-to-rvalue conversion on the LHS of an -> when…
… rebuilding

it during template instantiation, for a known RHS decl.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142890 91177308-0d34-0410-b5e6-96231b3b80d8
97f9fe0
Dan Gohman Remove another Blackfin test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142894 91177308-0d34-0410-b5e6-96231b3b80d8
94d881f
@zygoloid zygoloid Tidy up testcase from r142890, spotted by Chandler.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142895 91177308-0d34-0410-b5e6-96231b3b80d8
f11e923
Douglas Gregor Implement support for dependent Microsoft __if_exists/__if_not_exists
statements. As noted in the documentation for the AST node, the
semantics of __if_exists/__if_not_exists are somewhat different from
the way Visual C++ implements them, because our parsed-template
representation can't accommodate VC++ semantics without serious
contortions. Hopefully this implementation is "good enough".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142901 91177308-0d34-0410-b5e6-96231b3b80d8
ba0513d
Douglas Gregor Make the -Wc++11-compat warnings ignored by default, so we don't break
valid C++98/03 code. However, add these warnings to -Wall, for those
who obviously already like clean code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142903 91177308-0d34-0410-b5e6-96231b3b80d8
c2c1144
@krememek krememek Remove extra copy of contents of header file resulting in a patch bei…
…ng applied twice. Aren't include guards great?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142905 91177308-0d34-0410-b5e6-96231b3b80d8
42edac0
Douglas Gregor Check for unexpanded parameter packs in the name that guards a
Microsoft __if_exists/__if_not_exists statement. Also note that we
weren't traversing DeclarationNameInfo *at all* within the
RecursiveASTVisitor, which would be rather fatal for variadic
templates.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142906 91177308-0d34-0410-b5e6-96231b3b80d8
65019ac
Douglas Gregor Undo unnecessary change
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142907 91177308-0d34-0410-b5e6-96231b3b80d8
5c27ee0
@krememek krememek Tweak printf format string parsing to accept 'hh' conversion specifie…
…r to accept any char, not just signed char. Fixes <rdar://problem/10303638>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142908 91177308-0d34-0410-b5e6-96231b3b80d8
6ca4a9a
@krememek krememek Relax restriction of assigning to 'self' in ARC when a method is attr…
…ibuted with ns_consumes_self. Fixes <rdar://problem/10274056>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142909 91177308-0d34-0410-b5e6-96231b3b80d8
3045ce7
@zygoloid zygoloid Don't forget the lvalue-to-rvalue conversion on the LHS when instanti…
…ating a

dependent ->, where the member being referred to is an anonymous struct or
union. This path was missed by the fix in r142890.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142910 91177308-0d34-0410-b5e6-96231b3b80d8
a01c711
Eric Christopher Allow the -fno-operator-names option to be passed down to the rest
of the compiler.

Fixes PR10198
Patch by Brian Foley!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142913 91177308-0d34-0410-b5e6-96231b3b80d8
e88c451
@rjmccall rjmccall Introduce a placeholder type for "pseudo object"
expressions: expressions which refer to a logical rather
than a physical l-value, where the logical object is
actually accessed via custom getter/setter code.
A subsequent patch will generalize the AST for these
so that arbitrary "implementing" sub-expressions can
be provided.

Right now the only client is ObjC properties, but
this should be generalizable to similar language
features, e.g. Managed C++'s __property methods.




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142914 91177308-0d34-0410-b5e6-96231b3b80d8
a1b852f
@rjmccall rjmccall Pull the pseudo-object stuff into its own file.
Tidy up some marginally related code just to annoy
single-purpose-commit lovers.  No functionality change.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142915 91177308-0d34-0410-b5e6-96231b3b80d8
8628862
David Chisnall Change an int64_t to an intptr_t so that we don't end up with crashes…
… in the back end on large classes on 32-bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142918 91177308-0d34-0410-b5e6-96231b3b80d8
9d06ba8
@chapuni chapuni Revert r142914 and r142915, due to possibly missing file.
r142914: "Introduce a placeholder type for "pseudo object""
r142915: "Pull the pseudo-object stuff into its own file."

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142921 91177308-0d34-0410-b5e6-96231b3b80d8
327a50f
David Blaikie Support the use of decltype for specifying base types. Fixes PR11216.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142926 91177308-0d34-0410-b5e6-96231b3b80d8
09048df
David Blaikie Fix cases where the optional nested-name-specifier erroneously precee…
…ded a decltype-specification when specifying a base type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142928 91177308-0d34-0410-b5e6-96231b3b80d8
22216eb
David Blaikie Initialize the BaseLoc for decltype base type specifications.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142929 91177308-0d34-0410-b5e6-96231b3b80d8
edae1a2
@rjmccall rjmccall Restore r142914 and r142915, now with missing file and apparent
GCC compiler workaround.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142931 91177308-0d34-0410-b5e6-96231b3b80d8
3c3b7f9
David Blaikie Fix erroneous name-specifiers prior to decltypes better/correctly as …
…per Doug's feedback.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142935 91177308-0d34-0410-b5e6-96231b3b80d8
152aa4b
David Blaikie Handle redundant 'typename' on base class specifications.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142937 91177308-0d34-0410-b5e6-96231b3b80d8
7fe3878
Anna Zaks [analyze] Convert EndOfPath callback to use CheckerContext
Get rid of the EndOfPathBuilder completely.
Use the generic NodeBuilder to generate nodes.
Enqueue the end of path frontier explicitly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142943 91177308-0d34-0410-b5e6-96231b3b80d8
af498a2
Anna Zaks [analyzer] Make branch for condition callback use CheckerContext
Now, all the path sensitive checkers use CheckerContext!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142944 91177308-0d34-0410-b5e6-96231b3b80d8
f236b65
Anna Zaks [analyzer] Remove unused headers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142945 91177308-0d34-0410-b5e6-96231b3b80d8
2e9264a
Anna Zaks [analyzer] Simplify CheckerContext
Remove dead members/parameters: ProgramState, respondsToCallback, autoTransition.
Remove addTransition method since it's the same as generateNode. Maybe we should
rename generateNode to genTransition (since a transition is always automatically
generated)?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142946 91177308-0d34-0410-b5e6-96231b3b80d8
063e088
Anna Zaks [analyzer] Remove getEngine() form CheckerContext
A step toward making sure that diagnostics report should only
be generated though the CheckerContext and not though BugReporter
or ExprEngine directly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142947 91177308-0d34-0410-b5e6-96231b3b80d8
6a93bd5
Douglas Gregor Turn off delayed template parsing for this test
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142951 91177308-0d34-0410-b5e6-96231b3b80d8
fd08009
Commits on Oct 26, 2011
@zygoloid zygoloid UnresolvedMemberExprs need lvalue-to-rvalue conversions during template
instantiations too.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143016 91177308-0d34-0410-b5e6-96231b3b80d8
601d2ee
@zygoloid zygoloid Fix crash due to missing array-to-pointer decay when instantiating an…
… unresolved

member expression. Refactoring to follow.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143017 91177308-0d34-0410-b5e6-96231b3b80d8
f1f6d85
Eli Friedman Correctly perform integral promotions on wchar_t/char16_t/char32_t in…
… C++. <rdar://problem/10309088>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143019 91177308-0d34-0410-b5e6-96231b3b80d8
68a2dc4
Eli Friedman Compute the promoted integer type of fixed-width enums correctly. Fou…
…nd by inspection.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143021 91177308-0d34-0410-b5e6-96231b3b80d8
3bfb571
Douglas Gregor Disable on Windows, for real.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143027 91177308-0d34-0410-b5e6-96231b3b80d8
3ab057f
Douglas Gregor Eliminate a hang while loading a sequence of redeclarable entities. In
essence, the redeclaration chain for a class could end up in an
inconsistent state while deserializing multiple declarations in that
chain, where the circular linked list was not, in fact,
circular. Since only two redeclarations of the same entity will get
loaded when we're in this state, restore circularity when both have
been loaded. Fixes <rdar://problem/10324940> / PR11195.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143037 91177308-0d34-0410-b5e6-96231b3b80d8
d488b3a
@zygoloid zygoloid Pull out conversion on LHS of -> and . into its own function. This ha…
…ppens

implicitly in LookupMemberExpr and explicitly in cases where template
instantiation doesn't redo the lookup.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143046 91177308-0d34-0410-b5e6-96231b3b80d8
9138b4e
Douglas Gregor Try to appease the Windows builders
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143048 91177308-0d34-0410-b5e6-96231b3b80d8
29e627a
@espindola espindola Fix pr9614 by not emitting an available_externally function when it c…
…alls

itself via an asm label.

available_externally functions are supposed to correspond to an external
function, and that is not the case in the examples in pr9614.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143049 91177308-0d34-0410-b5e6-96231b3b80d8
a411d2f
@espindola espindola Fix this tests on the bots.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143052 91177308-0d34-0410-b5e6-96231b3b80d8
e8f4eed
Fariborz Jahanian Objective-c: fix an ir-gen crash where objc messag returns a _Complex
value and ABI requires return slot to be passed as first
argument to message sent. // rdar://10331109


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143053 91177308-0d34-0410-b5e6-96231b3b80d8
6c29eda
Anna Zaks [analyzer] GenericNodeBuilder -> NodeBuilder.
Remove GenericNodeBuilder and use a class inherited from NodeBuilder instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143057 91177308-0d34-0410-b5e6-96231b3b80d8
c03a39e
Anna Zaks [analyzer] Remove forward declarations of GenericNodeBuilder
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143058 91177308-0d34-0410-b5e6-96231b3b80d8
1d08123
Anna Zaks [analyzer] Rename generateNode -> addTransition in CheckerContext
Also document addTransition methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143059 91177308-0d34-0410-b5e6-96231b3b80d8
0bd6b11
Anna Zaks [analyzer] Remove EmitBasicReport form CheckerContext.
The path sensitive checkers should use EmitBasicReport, which provides the
node information.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143060 91177308-0d34-0410-b5e6-96231b3b80d8
48468df
Anna Zaks [analyzer] Add getLocationContext to CheckerContext
CheckerContext::getPredecessor is only used to get to the LocationContext
half of the times.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143061 91177308-0d34-0410-b5e6-96231b3b80d8
39ac187
Douglas Gregor Disalbe more Microsoft-specific stuff.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143077 91177308-0d34-0410-b5e6-96231b3b80d8
1b8fc01
Fariborz Jahanian Do not warn when weak-import attribute is applied to enum
decl. in Darwin due to certain projects requirement. 
// rdar://10277579


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143082 91177308-0d34-0410-b5e6-96231b3b80d8
90eed21
Commits on Oct 27, 2011
@akyrtzi akyrtzi For the "'@end' is missing in implementation context" point at the lo…
…cation of '@'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143084 91177308-0d34-0410-b5e6-96231b3b80d8
1104d9b
@akyrtzi akyrtzi Fix crash on an @interface nested inside @implementation, rdar://1033…
…6158

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143085 91177308-0d34-0410-b5e6-96231b3b80d8
458bacf
@akyrtzi akyrtzi Make use of the parameter in Sema::ActOnObjCTemporaryExitContainerCon…
…text.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143088 91177308-0d34-0410-b5e6-96231b3b80d8
4a7dc8a
Anna Zaks [analyzer] Make CoreEngine responsible for enqueueing Stmt Nodes.
Enqueue the nodes generated as the result of processing a statement
inside the Core Engine. This makes sure ExpEngine does not access
CoreEngine's private members and is more concise.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143089 91177308-0d34-0410-b5e6-96231b3b80d8
dd7ddf2
Anna Zaks [analyzer] Move enqueueEndOfFunction into CoreEngine.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143090 91177308-0d34-0410-b5e6-96231b3b80d8
4d2ae4a
Anna Zaks [analyzer] Optimize by not generating empty transitions in CheckerCon…
…text

Go not generate a new transition by addTransition methods if nothing changed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143091 91177308-0d34-0410-b5e6-96231b3b80d8
df95d14
@nlewycky nlewycky Move these test from checking assembly to checking LLVM IR. Should fi…
…x fallout

from r143097.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143098 91177308-0d34-0410-b5e6-96231b3b80d8
98a9203
@zmodem zmodem Teach format string analysis that "%zu" means size_t.
The code had it backwards, thinking size_t was signed, and using that for "%zd".

Also let the analysis get the types for (u)intmax_t while we are at it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143099 91177308-0d34-0410-b5e6-96231b3b80d8
29e97cb
Douglas Gregor Make the loading of information attached to an IdentifierInfo from an
AST file more lazy, so that we don't eagerly load that information for
all known identifiers each time a new AST file is loaded. The eager
reloading made some sense in the context of precompiled headers, since
very few identifiers were defined before PCH load time. With modules,
however, a huge amount of code can get parsed before we see an
@import, so laziness becomes important here.

The approach taken to make this information lazy is fairly simple:
when we load a new AST file, we mark all of the existing identifiers
as being out-of-date. Whenever we want to access information that may
come from an AST (e.g., whether the identifier has a macro definition,
or what top-level declarations have that name), we check the
out-of-date bit and, if it's set, ask the AST reader to update the
IdentifierInfo from the AST files. The update is a merge, and we now
take care to merge declarations before/after imports with declarations
from multiple imports.

The results of this optimization are fairly dramatic. On a small
application that brings in 14 non-trivial modules, this takes modules
from being > 3x slower than a "perfect" PCH file down to 30% slower
for a full rebuild. A partial rebuild (where the PCH file or modules
can be re-used) is down to 7% slower. Making the PCH file just a
little imperfect (e.g., adding two smallish modules used by a bunch of
.m files that aren't in the PCH file) tips the scales in favor of the
modules approach, with 24% faster partial rebuilds.

This is just a first step; the lazy scheme could possibly be improved
by adding versioning, so we don't search into modules we already
searched. Moreover, we'll need similar lazy schemes for all of the
other lookup data structures, such as DeclContexts.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143100 91177308-0d34-0410-b5e6-96231b3b80d8
eee242f
@akyrtzi akyrtzi [libclang] Add comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143111 91177308-0d34-0410-b5e6-96231b3b80d8
bd0ddf8
@krememek krememek Move ASTUnit's handling of temporary files and the preamble file into…
… a lazily-created static DenseMap. This DenseMap is cleared (and the files erased) via an atexit routine in the case an ASTUnit is not destroyed. Fixes <rdar://problem/10293367>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143115 91177308-0d34-0410-b5e6-96231b3b80d8
1872b31
@akyrtzi akyrtzi [PCH] Pull the location out of the serialized declarations and put it…
… in the array

of decl bit offsets.

This allows us to easily get at the location of a decl without deserializing it.
It increases size of Cocoa PCH by only 0.2%.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143123 91177308-0d34-0410-b5e6-96231b3b80d8
9d31fa7
@pcc pcc Annotate imprecise FP division with fpaccuracy metadata
The OpenCL single precision division operation is only required to
be accurate to 2.5ulp.  Annotate the fdiv instruction with metadata
which signals to the backend that an imprecise divide instruction
may be used.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143136 91177308-0d34-0410-b5e6-96231b3b80d8
c5096cb
@krememek krememek Add mutex for accessing ASTUnit's global OnDisk data. This may be an …
…issue as libclang could be processing multiple ASTUnit's at once.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143138 91177308-0d34-0410-b5e6-96231b3b80d8
e055f8a
Fariborz Jahanian objc: fix an ir-gen crash caused by recent
property refactoring. // rdar://10327068


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143139 91177308-0d34-0410-b5e6-96231b3b80d8
9c1ba40
@krememek krememek Mark these tests as requiring use of the shell.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143150 91177308-0d34-0410-b5e6-96231b3b80d8
2ce634d
@zygoloid zygoloid Fix some cases where a CK_IntegralCast was being used to convert an l…
…value to an

rvalue. An assertion to catch this is in ImpCastExprToType will follow, but
vector operations currently trip over this (due to omitting the usual arithmetic
conversions). Also add an assert to catch missing lvalue-to-rvalue conversions
on the LHS of ->.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143155 91177308-0d34-0410-b5e6-96231b3b80d8
4f87062
Dan Gohman Remove the Alpha backend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143165 91177308-0d34-0410-b5e6-96231b3b80d8
e3271d4
@zygoloid zygoloid Add missing lvalue-to-rvalue conversion to vector splat casts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143166 91177308-0d34-0410-b5e6-96231b3b80d8
61ffd09
Commits on Oct 28, 2011
Richard Trieu Fix for PR9751 to change the behavior of -Wformat warnings. If the fo…
…rmat

string is part of the function call, then there is no difference.  If the
format string is not, the warning will point to the call site and a note
will point to where the format string is.

Fix-it hints for strings are moved to the note if a note is emitted.  This will
prevent changes to format strings that may be used in multiple places.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143168 91177308-0d34-0410-b5e6-96231b3b80d8
55733de
@rjmccall rjmccall Be sure to build a dependent expression when we see
a binary operator involving a dependently-typed overload set.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143172 91177308-0d34-0410-b5e6-96231b3b80d8
ac51650
@zygoloid zygoloid Add (hopefully) the last missing lvalue-to-rvalue conversion. Add an …
…assertion

to catch some future implicit lvalue-to-rvalue casts of inappropriate kinds.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143182 91177308-0d34-0410-b5e6-96231b3b80d8
9c129f8
@nlewycky nlewycky Fix test for LLVM change r143186.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143187 91177308-0d34-0410-b5e6-96231b3b80d8
9c273ff
@d0k d0k Reflow code. No intended functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143192 91177308-0d34-0410-b5e6-96231b3b80d8
aa9807a
@d0k d0k Use const_cast to make it obvious that it's just removing constness (…
…and silence warnings).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143193 91177308-0d34-0410-b5e6-96231b3b80d8
854625f
@zygoloid zygoloid Reinstate r142844 (reverted in r142872) now that lvalue-to-rvalue con…
…versions

are present in all the necessary places:

In constant expression evaluation, evaluate lvalues as lvalues and rvalues as
rvalues. Remove special case for caching reference initialization and fix a
cyclic initialization crash in the process.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143204 91177308-0d34-0410-b5e6-96231b3b80d8
c49bd11
David Chisnall It turns out that the Objective-C message lookup functions can throw …
…exceptions after all...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143205 91177308-0d34-0410-b5e6-96231b3b80d8
6f3887e
@krememek krememek [analyzer] ObjC message sends to nil receivers that return structs ar…
…e now okay (compiler zeroes out the data). Fixes <rdar://problem/9151319>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143215 91177308-0d34-0410-b5e6-96231b3b80d8
4a037c7
Douglas Gregor Deleted functions were in Clang 2.9, defaulted functions in
3.0. Fixses PR11252.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143216 91177308-0d34-0410-b5e6-96231b3b80d8
26bae20
Fariborz Jahanian objective-c arc: type-casting of an objc pointer to
an rvalue retainable object type with life-time qualifier has no
effect and wil be diagnosed as error. // rdar://10244607


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143219 91177308-0d34-0410-b5e6-96231b3b80d8
6d09f01
@espindola espindola Fix PR9614 for functions with the always_inline attribute. Try to keep
the common case (-O0, no always_inline) fast.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143222 91177308-0d34-0410-b5e6-96231b3b80d8
cc4889f
@espindola espindola Fix this on the bots and make the test more complete by enabling opti…
…mizations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143223 91177308-0d34-0410-b5e6-96231b3b80d8
bcb5452
Devang Patel In case of template specialization, do not try to delay emitting debu…
…g info for concrete type in -flimit-debug-info mode. This fixes some of the failures from bs15503.exp tests in gdb testsuite.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143227 91177308-0d34-0410-b5e6-96231b3b80d8
ef8857d
@zygoloid zygoloid Initial support for C++11 constexpr function invocation substitution.…
… Using

constexpr function arguments outside of their function (passing or returning
them by reference) does not work correctly yet.

Calling constexpr function templates does not work yet, since the bodies are not
instantiated until the end of the translation unit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143234 91177308-0d34-0410-b5e6-96231b3b80d8
d0dccea
@akyrtzi akyrtzi [PCH] Keep track of file-level declarations that are contained by files.
Introduce a FILE_SORTED_DECLS [de]serialization record that contains
a file sorted array of file-level DeclIDs in a PCH/Module.
The rationale is to allow "targeted" deserialization of decls inside
a range of a source file.

Cocoa PCH increased by 0.8%
Difference of creation time for Cocoa PCH is below the noise level.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143238 91177308-0d34-0410-b5e6-96231b3b80d8
10f3df5
@akyrtzi akyrtzi Add an alias option for -error-on-deserialized-decl with joined '='.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143239 91177308-0d34-0410-b5e6-96231b3b80d8
9a8cbc7
@akyrtzi akyrtzi [ARC] Do not transfer ARC ownership if the cast is going to result in…
… r-value,

in which case the ownership is redundant. Thanks to John for the suggestion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143240 91177308-0d34-0410-b5e6-96231b3b80d8
6ee5492
@akyrtzi akyrtzi Make -error-on-deserialized-decl work correctly by correctly delegati…
…ng to

the previous ASTDeserializationListener.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143241 91177308-0d34-0410-b5e6-96231b3b80d8
407ef9a
@akyrtzi akyrtzi [libclang] Check for environment variable CINDEXTEST_NOTHREADS in cla…
…ng_reparseTranslationUnit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143242 91177308-0d34-0410-b5e6-96231b3b80d8
8c4b47e
@akyrtzi akyrtzi [libclang] Introduce use of CINDEXTEST_FAILONERROR environment variab…
…le which, if set,

will cause c-index-test to return as failed if a compiler error occurred.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143243 91177308-0d34-0410-b5e6-96231b3b80d8
dfca64d
Douglas Gregor Give __STDC_VERSION__ the value 201001L when we're in C1x mode. The
committee hasn't set a value for __STDC_VERSION__ yet, so this is a
placeholder. But at least it's > 199901L.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143245 91177308-0d34-0410-b5e6-96231b3b80d8
5aa6dea
Douglas Gregor Move -Wc++11-compat out of -Wall. It causes trouble for clients that
define their own "nullptr" class in C++98 and build with -Wall.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143248 91177308-0d34-0410-b5e6-96231b3b80d8
50af19c
@zygoloid zygoloid Fix assertion in constant expression evaluation. The LHS of a floatin…
…g-point

binary operator isn't an rvalue if it's an assignment operator.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143250 91177308-0d34-0410-b5e6-96231b3b80d8
ee591a9
@akyrtzi akyrtzi [PCH] In ASTWriter::associateDeclWithFile don't bother finding the fi…
…le loc

if we are not interested in the decl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143255 91177308-0d34-0410-b5e6-96231b3b80d8
19645d2
@akyrtzi akyrtzi [PCH] Sort the file decls by file offset not raw source location.
Currently sorting by raw source location does work as intended but who knows
what may change in the future..

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143256 91177308-0d34-0410-b5e6-96231b3b80d8
fab8d5b
Commits on Oct 29, 2011
@zygoloid zygoloid Add test missed from r143234.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143257 91177308-0d34-0410-b5e6-96231b3b80d8
839046a
Fariborz Jahanian objc-arc: desugar certain type and improve on diagnostic for
ownership qualifier cast which won't work.
// rdar://10244607


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143258 91177308-0d34-0410-b5e6-96231b3b80d8
fc2eff5
@krememek krememek Start work on SerializedDiagnosticPrinter, a new DiagnosticConsumer t…
…hat serializes out the diagnostics for a given translation unit to a bit code file. This is a WIP.

The motivation for this new DiagnosticConsumer is to provide a way for tools invoking the compiler
to get its diagnostics via a libclang interface, rather than textually parsing the compiler output.
This gives us flexibility to change the compiler's textual output, but have a structured data format
for clients to use to get the diagnostics via a stable API.

I have no tests for this, but llvm-bcanalyzer so far shows that the emitted file is well-formed.

More work to follow.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143259 91177308-0d34-0410-b5e6-96231b3b80d8
7800212
@zygoloid zygoloid Rename Expr::Evaluate to Expr::EvaluateAsRValue to make it clear that…
… it will

implicitly perform an lvalue-to-rvalue conversion if used on an lvalue
expression. Also improve the documentation of Expr::Evaluate* to indicate which
of them will accept expressions with side-effects.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143263 91177308-0d34-0410-b5e6-96231b3b80d8
51f4708
@akyrtzi akyrtzi Use LIBCLANG_NOTHREADS instead of CINDEXTEST_NOTHREADS inside libclang,
so the c-index-test one can be enabled without affecting libclang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143288 91177308-0d34-0410-b5e6-96231b3b80d8
e7de9b4
@abramobagnara abramobagnara Fixed FriendDecl source locations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143295 91177308-0d34-0410-b5e6-96231b3b80d8
0216df8
@zygoloid zygoloid constexpr function substitution:
Track the function invocation where an lvalue referring to a constexpr function
parameter originated from, and use it to substitute the correct argument and to
determine whether such an argument's lifetime has ended.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143296 91177308-0d34-0410-b5e6-96231b3b80d8
47a1eed
@zygoloid zygoloid constexpr evaluation: allow lvalue-to-rvalue conversion on any litera…
…l type, not

just integers and floating point types. Since we don't support evaluating class
types or performing lvalue-to-rvalue conversions on array elements yet, this
just means pointer types right now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143298 91177308-0d34-0410-b5e6-96231b3b80d8
b78c0b6
@zygoloid zygoloid Don't crash if a GCC binary conditional is used in a constant express…
…ion on an

integer-cast pointer value.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143299 91177308-0d34-0410-b5e6-96231b3b80d8
342f1f8
Commits on Oct 30, 2011
Bob Wilson Stop disabling integrated assembler with -static. <rdar://problem/101…
…75391>

The integrated assembler seems to be working pretty well for -static code
now, so remove the hacks to disable it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143304 91177308-0d34-0410-b5e6-96231b3b80d8
1a1764b
@rdivacky rdivacky Add support for amdfam10 cpu.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143305 91177308-0d34-0410-b5e6-96231b3b80d8
01c770d
Jim Goodnow II Fixed CXX struct and class initialization printing to support 'move'
type constructors.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143309 91177308-0d34-0410-b5e6-96231b3b80d8
5eca37c
@rdivacky rdivacky Add support for sse4a and enable it for amdfam10 cpu.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143312 91177308-0d34-0410-b5e6-96231b3b80d8
80b32b8
@pcc pcc Add support for lazily linking bitcode files (using a new
-mlink-bitcode-file flag), and more generally llvm::Modules, before
running optimisations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143314 91177308-0d34-0410-b5e6-96231b3b80d8
22a7dfe
@zygoloid zygoloid Fix assert on constant expression evaluation of floating point increm…
…ent.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143320 91177308-0d34-0410-b5e6-96231b3b80d8
7993e8a
Commits on Oct 31, 2011
@tobig tobig cindex.py: Add File.create_from_name()
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143321 91177308-0d34-0410-b5e6-96231b3b80d8
a9ea5df
@tobig tobig cindex.py: Allow to create a cursor from file/row/column
We add a constructor to create a SourceLocation from a position in
a file and we use this SourceLocation to retrieve a cursor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143322 91177308-0d34-0410-b5e6-96231b3b80d8
58ba8c9
@tobig tobig clang.py: Remove use of ternary operators
This change is necessary to make this file python 2.4 compatible.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143324 91177308-0d34-0410-b5e6-96231b3b80d8
8198288
@nlewycky nlewycky Turn on the new .file directive when appropriate, instead of turning …
…it off.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143327 91177308-0d34-0410-b5e6-96231b3b80d8
aaf2f36
@zygoloid zygoloid C++11 generalized constant expressions: support pointer comparisons w…
…here the

result is not unspecified.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143329 91177308-0d34-0410-b5e6-96231b3b80d8
625b807
@tobig tobig cindex.py: Remove more ternary operator + whitespace fixes
Another batch of ternary operators and some whitespace fixes
(Getting in sync with the clang_complete version of this file)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143330 91177308-0d34-0410-b5e6-96231b3b80d8
ba5d10b
@zygoloid zygoloid C++11 generalized constant expressions: evaluate equality comparisons…
… between

arbitrary pointers, if those pointers don't point to weak objects or literals.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143334 91177308-0d34-0410-b5e6-96231b3b80d8
9e36b53
@zygoloid zygoloid C++11 generalized constant expression handling: evaluation support for
materialized temporaries.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143335 91177308-0d34-0410-b5e6-96231b3b80d8
bd552ef
@akyrtzi akyrtzi [libclang] Rename VisitIncludedPreprocessingEntries -> VisitIncludedE…
…ntities

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143337 91177308-0d34-0410-b5e6-96231b3b80d8
e709846
@akyrtzi akyrtzi Have the ASTUnit associate the local declarations that get parsed wit…
…h the file

that contains them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143338 91177308-0d34-0410-b5e6-96231b3b80d8
332cb9b
@akyrtzi akyrtzi Introduce SourceManager::isLocalFileID/isLoadedFileID functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143339 91177308-0d34-0410-b5e6-96231b3b80d8
7186991
@akyrtzi akyrtzi [PCH] For ASTReader's FileDeclIDs also associate the Module that the
local DeclIDs came from.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143340 91177308-0d34-0410-b5e6-96231b3b80d8
9d128d0
@akyrtzi akyrtzi [PCH] Now that we store the location of a decl outside its record
make sure that we keep track of locations of replaced decls as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143341 91177308-0d34-0410-b5e6-96231b3b80d8
ef23b60
@akyrtzi akyrtzi Move caching of code-completion results from ASTUnit::Reparse to ASTU…
…nit::CodeComplete,

so that it will happen when we are doing code-completion, not reparsing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143342 91177308-0d34-0410-b5e6-96231b3b80d8
0922949
@akyrtzi akyrtzi Fix the source range for ObjCInterfaces that are forward decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143343 91177308-0d34-0410-b5e6-96231b3b80d8
d1cf3ff
@chandlerc chandlerc Fix part of PR11223 and probably a few dups as well. This teaches the
library search logic to "properly" handle multiarch installations. I've
tested this on both Debian unstable and the latest Ubuntu which both use
this setup, and this appears to work largely the same way as GCC does.
It isn't exactly the same, but it is close enough and more principled in
its behavior where it differs. This should resolve any failures to find
'crt1.o' etc on Debian-based Linux distributions. If folks find more
cases where we fail, please file bugs and CC me.

Test cases for all of the debian silliness are waiting both to simplify
the process of merging these down into the 3.0 release, and because
they're so crazy I haven't yet been able to really produce a fake tree
that represents what we need to test for. I'll eventually add them
though.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143344 91177308-0d34-0410-b5e6-96231b3b80d8
deb73f8
@chandlerc chandlerc Add "just one more" include path to the monstrosity that is our header
search logic. The Debian multiarch seems to have completely changed from
when these were originally added, and I'd like to remove a bunch of
them, but I'll be lazy and delay that until this logic is hoisted into
the driver where it belongs.

This should resolve PR11223.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143345 91177308-0d34-0410-b5e6-96231b3b80d8
ef0faea
@chandlerc chandlerc Simplify the set of directories we look for on multiarch systems.
I don't have any Debian system with one of these currently, and it seems
unlikely for one to show up suddenly. We can add more patterns here if
they become necessary.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143346 91177308-0d34-0410-b5e6-96231b3b80d8
236e0b6
@karies karies Add possibility to specify an include location for createFileIDForMem…
…Buffer().

Useful to set up a virtual include hierarchy, e.g. to order diagnostics for ambiguous overloads from MemoryBuffers.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143347 91177308-0d34-0410-b5e6-96231b3b80d8
f453cb9
Anders Carlsson In x86_64, when calling an Objective-C method that returns a _Complex…
… long double, make sure to use the objc_msgSend_fp2ret function which ensures that the return value will be {0, 0} if the receiver is nil.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143350 91177308-0d34-0410-b5e6-96231b3b80d8
eea6480
Fariborz Jahanian Improve text of a diagnostic.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143353 91177308-0d34-0410-b5e6-96231b3b80d8
56892c1
@zygoloid zygoloid Temporary fix for assert while evaluating array-to-pointer decay on a…
…rray

rvalue. Test and better fix to follow.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143360 91177308-0d34-0410-b5e6-96231b3b80d8
aa97b53
@zygoloid zygoloid Refactoring and test for r143360. Support for array rvalue to pointer…
… decay is

needed for C++11, and will follow later.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143363 91177308-0d34-0410-b5e6-96231b3b80d8
6a7c94a
Eli Friedman Add missing lvalue-to-rvalue conversion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143364 91177308-0d34-0410-b5e6-96231b3b80d8
7a420df
@akyrtzi akyrtzi Revert r143342. Caching of code-completion results was intentionally …
…placed in "reparse"

because we don't want to take this performance hit when doing code completion

Log of r143342:
Move caching of code-completion results from ASTUnit::Reparse to ASTUnit::CodeComplete,
so that it will happen when we are doing code-completion, not reparsing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143367 91177308-0d34-0410-b5e6-96231b3b80d8
2fe17fc
@krememek krememek [libclang] Add CXDiagnosticImpl to represent a super class for the im…
…plementation backing a CXDiagnostic. This allows CXStoredDiagnostic

to be just one possible implementation of a CXDiagnostic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143368 91177308-0d34-0410-b5e6-96231b3b80d8
1edabbc
@krememek krememek [libclang] Move implementation of functions for manipulation CXSource…
…Locations and CXSourceRanges into a separate file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143370 91177308-0d34-0410-b5e6-96231b3b80d8
3ddef06
@krememek krememek [libclang] Tweak internals of CXSourceLocation to allow an alternate …
…implementation if the lowest bit of ptr_data[0] is not 0. This

is prep for work on serialized diagnostics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143373 91177308-0d34-0410-b5e6-96231b3b80d8
51a7d5d
Eli Friedman Don't try to fold comparisons between the address of an object and an…
… arbitrary integer constant. Fixes regression from r143334.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143374 91177308-0d34-0410-b5e6-96231b3b80d8
ffbda40
Eli Friedman Some minor comment changes in constant-folding comparisons.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143391 91177308-0d34-0410-b5e6-96231b3b80d8
c45061b
Fariborz Jahanian Adds IRGen support for captured rvalue references in blocks.
In this case, temporary value is copied into block descriptor
as their own copy to work on. // rdar://9971124


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143399 91177308-0d34-0410-b5e6-96231b3b80d8
d8c4551
Commits on Nov 01, 2011
Douglas Gregor Rework the AST for the initializer of a delegating constructor, so
that it retains source location information for the type. Aside from
general goodness (being able to walk the types described in that
information), we now have a proper representation for dependent
delegating constructors. Fixes PR10457 (for real).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143410 91177308-0d34-0410-b5e6-96231b3b80d8
76852c2
Douglas Gregor Add __has_feature(cxx_defaulted_functions) for querying "defaulted
functions", from Michel Morin!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143411 91177308-0d34-0410-b5e6-96231b3b80d8
f695a69
Douglas Gregor Add __has_feature(cxx_raw_string_literals) and
__has_feature(cxx_unicode_literals), from Michel Morin!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143412 91177308-0d34-0410-b5e6-96231b3b80d8
172b221
@tobig tobig Add LinkAllPasses to clang
This patch ensures that no passes are deleted from clang, such that the loading
of plugins does not fail because of passes being unavailable.  This increases
the size of the clang binary from 43029853 to 43915291 bytes (around 2%).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143414 91177308-0d34-0410-b5e6-96231b3b80d8
f358c8a
Eli Friedman Move ConvertUTF8toUTF32 out of #if 0, in preparation for a patch whic…
…h needs it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143415 91177308-0d34-0410-b5e6-96231b3b80d8
436ecd9
Eli Friedman Perform proper conversion for strings encoded in the source file as U…
…TF-8. (For now, we are assuming the source character set is always UTF-8; this can be easily extended if necessary.)

Tests will be coming up in a subsequent commit.

Patch by Seth Cantrell.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143416 91177308-0d34-0410-b5e6-96231b3b80d8
f74a458
Eli Friedman Fix the representation of wide strings in the AST and IR so that it u…
…ses the native representation of integers for the elements. This fixes a bunch of nastiness involving

treating wide strings as a series of bytes.

Patch by Seth Cantrell.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143417 91177308-0d34-0410-b5e6-96231b3b80d8
64f45a2
Eli Friedman Tests for UTF-8 encoding in strings in source code. Patch by Seth Can…
…trell.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143418 91177308-0d34-0410-b5e6-96231b3b80d8
f12e1b9
Eli Friedman Make test work with ARM C++ ABI.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143425 91177308-0d34-0410-b5e6-96231b3b80d8
d9f5b33
Eli Friedman Don't depend on system includes in test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143426 91177308-0d34-0410-b5e6-96231b3b80d8
8bb6e9e
Eli Friedman Mark test as requiring x86 backend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143427 91177308-0d34-0410-b5e6-96231b3b80d8
55a7ba0
Eli Friedman Correct test for additional comment line.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143436 91177308-0d34-0410-b5e6-96231b3b80d8
885011b
@CornedBee CornedBee Enable function call and some overload resolution with parameters of …
…aggregate class type and initializer list arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143462 91177308-0d34-0410-b5e6-96231b3b80d8
cc7a648
@zygoloid zygoloid Implement C++11 'constexpr calls must return constant expressions' ru…
…le, and

perform the code simplifications this rule allows.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143463 91177308-0d34-0410-b5e6-96231b3b80d8
177dce7
@akyrtzi akyrtzi [libclang] For a class extension, give it a unique USR but for any pr…
…operty or ivar

it contains give it a USR based on its semantic context, which is the interface.

This follows what we already did for objc methods. rdar://10371669

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143464 91177308-0d34-0410-b5e6-96231b3b80d8
87ec9c2
@akyrtzi akyrtzi Put a reference of the ASTReader in the ASTUnit.
This is intended for direct access of the ASTReader for uses that make
little sense to try to shoehorn in the ExternalASTSource interface.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143465 91177308-0d34-0410-b5e6-96231b3b80d8
62ba9f6
@krememek krememek Downgrade err_iboutlet_object_type to a warning. It was breaking a bu…
…nch of code. We will reconsider promoting it back to an error later.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143470 91177308-0d34-0410-b5e6-96231b3b80d8
0bfaf06
Matt Beaumont-Gay Silence a warning in -Asserts builds
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143471 91177308-0d34-0410-b5e6-96231b3b80d8
2eb0ce3
Fariborz Jahanian Find copy constructor needed to copy an rvalue reference
c++ object into block descriptor. // rdar://9971124


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143475 91177308-0d34-0410-b5e6-96231b3b80d8
0505321
@akyrtzi akyrtzi [libclang] Fix non-darwin buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143477 91177308-0d34-0410-b5e6-96231b3b80d8
d4e7e22
Tanya Lattner Do not create sub_dirs. This breaks the CSS links for the website and…
… produces really long URLS.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143487 91177308-0d34-0410-b5e6-96231b3b80d8
ef84af9
@zygoloid zygoloid Temporarily disable lvalue-to-rvalue conversions on const pointers wh…
…ile an

apparent miscompile triggered by this is investigated. This is essentially a
revert of r143298.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143491 91177308-0d34-0410-b5e6-96231b3b80d8
344d78d
@zygoloid zygoloid When constant-folding, don't look at the initializer of a global cons…
…t variable

if it's marked as weak: that definition may not end up being used.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143496 91177308-0d34-0410-b5e6-96231b3b80d8
65ac598
Sebastian Pop rename getHostTriple into getDefaultTargetTriple in clang
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143503 91177308-0d34-0410-b5e6-96231b3b80d8
5d8b954
Douglas Gregor When we see an out-of-line definition of a member class template that
does not match any declaration in the class (or class template), be
sure to mark it as invalid. Fixes PR10924 / <rdar://problem/10119422>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143504 91177308-0d34-0410-b5e6-96231b3b80d8
ea9f54a
@zygoloid zygoloid Fix r143463 to test what it was intended to test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143505 91177308-0d34-0410-b5e6-96231b3b80d8
0b4072f
Douglas Gregor When we run into a constructor or destructor that is defined in the
wrong class, make sure to drop it immediately; we don't want that
constructor to be available within the DeclContext. Fixes
<rdar://problem/9677163>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143506 91177308-0d34-0410-b5e6-96231b3b80d8
5d8419c
Eli Friedman Add missing export. Spotted by Leandro Melo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143508 91177308-0d34-0410-b5e6-96231b3b80d8
d22718c
Anna Zaks [analyzer] Remove the CheckerContext's destructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143512 91177308-0d34-0410-b5e6-96231b3b80d8
6706e97
Anna Zaks [analyzer] CheckerContext::getPredecessor() cleanup
Remove unnecessary calls to CheckerContext::getPredecessor() + Comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143513 91177308-0d34-0410-b5e6-96231b3b80d8
a2a8603
Anna Zaks [analyzer] BranchNodeBuilder should not generate autotransitions.
This fixes radar://10367606

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143514 91177308-0d34-0410-b5e6-96231b3b80d8
cdcc653
Anna Zaks [analyzer] Make sure the child builder use temporary destination sets
The parent and child builders should not share node sets.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143515 91177308-0d34-0410-b5e6-96231b3b80d8
6889679
Anna Zaks [analyzer] Fix PR11282 - an assert in markAsSink
This is another fallout from the refactoring. We were
calling MarkAsSink on a cached out node.
(Fixes radar://10376675)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143516 91177308-0d34-0410-b5e6-96231b3b80d8
2d950b1
Anna Zaks [analyzer] Make sink attribute part of the node profile.
This prevents caching out on nodes with different sink flag.
(This is a cleaner fix for radar://10376675).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143517 91177308-0d34-0410-b5e6-96231b3b80d8
6800ba6
Fariborz Jahanian objc: warn if a readonly property has a setter attribute too.
// rdar://10357768


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143518 91177308-0d34-0410-b5e6-96231b3b80d8
48a98c7
Commits on Nov 02, 2011
Eli Friedman Add an option to emulate the strange Apple gcc behavior of #pragma pack.
<rdar://problem/10374763>



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143527 91177308-0d34-0410-b5e6-96231b3b80d8
19bda3a
Bob Wilson Check for homogeneous aggregate return values with ARM's AAPCS-VFP ABI.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143530 91177308-0d34-0410-b5e6-96231b3b80d8
3b694fa
@chandlerc chandlerc Update the CMake build for clang-tblgen to reflect that it directly
depends on the Support library rather than relying on TableGen's
transitive dependency.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143532 91177308-0d34-0410-b5e6-96231b3b80d8
d4e85fa
Bob Wilson Invoke the Darwin assembler with -g instead of --gdwarf2.
The -g and --gdwarf2 options are currently synonyms to the Darwin assembler.
But clang itself does not recognize --gdwarf2, so if we want to experiment
with using clang, with its integrated assembler, to replace the default
assembler, it is necessary to use -g.  <rdar://problem/10349486>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143533 91177308-0d34-0410-b5e6-96231b3b80d8
591ff15
@Bigcheese Bigcheese Add colors to the C++11 status page.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143535 91177308-0d34-0410-b5e6-96231b3b80d8
45b636a
@d0k d0k Remove virtually empty file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143538 91177308-0d34-0410-b5e6-96231b3b80d8
2eba859
David Blaikie Fixing some dead links. Patch by Jean-Daniel Dupas!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143539 91177308-0d34-0410-b5e6-96231b3b80d8
b09a33c
Douglas Gregor Use StringLiteral::getBytes(), not StringLiteral::getString(), when p…
…rofiling the expression, so that it works for non-UTF8 strings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143550 91177308-0d34-0410-b5e6-96231b3b80d8
38738fc
Douglas Gregor Drastically simplify the mapping from the declaration corresponding to
the injected-class-name of a class (or class template) to the
declaration that results from substituting the given template
arguments. Previously, we would actually perform a substitution into
the injected-class-name type and then retrieve the resulting
declaration. However, in certain, rare circumstances involving
deeply-nested member templates, we would get the wrong substitution
arguments.

This new approach just matches up the declaration with a declaration
that's part of the current context (or one of its parents), which will
either be an instantiation (during template instantiation) or the
declaration itself (during the definition of the template). This is
both more efficient (we're avoiding a substitution) and more correct
(we can't get the template arguments wrong in the member-template
case). 

Fixes <rdar://problem/9676205>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143551 91177308-0d34-0410-b5e6-96231b3b80d8
0b1beb7
Anna Zaks [analyzer] Start writing Checker Developer Manual.
So far added the skeleton + several more or less complete sections:
Getting Started
Idea for a Checker
AST Visitors
Useful Commands/Debugging Hints

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143554 91177308-0d34-0410-b5e6-96231b3b80d8
d67fc49
@chandlerc chandlerc Add the newest Gentoo GCC version based on the reported installed
version in PR11298.

I hear-by apologize for adding yet more code to this monstrosity.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143567 91177308-0d34-0410-b5e6-96231b3b80d8
27e66ad
Anna Zaks [analyzer] Tweak the test script
Rename the pre_run_static_analyzer script into cleanup_run_static_analyzer
and use it to clean up after the reference build - which is done as part of
adding a new project to the system.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143568 91177308-0d34-0410-b5e6-96231b3b80d8
5fa3f13
Douglas Gregor Fix various minor issues find via unreachable code warnings, from
Ahmed Charles!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143569 91177308-0d34-0410-b5e6-96231b3b80d8
21a2516
Chad Rosier In addition to dumping preprocessed source, dump a script with the co…
…mmand line

arguments that caused clang to crash.
rdar://8314451

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143573 91177308-0d34-0410-b5e6-96231b3b80d8
ce50c55
Douglas Gregor Don't encourage bug reports to the Clang mailing list. We have a bug
report link for that.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143581 91177308-0d34-0410-b5e6-96231b3b80d8
3c24cab
Fariborz Jahanian back out changes in r143399 and r143475.
rvale-references are captured by reference
in blocks. // rdar://9971124.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143583 91177308-0d34-0410-b5e6-96231b3b80d8
c637d73
Douglas Gregor Don't build member initializers for zero-length or incomplete arrays,
and don't try to destroy them, either. Fixes
<rdar://problem/10228639>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143584 91177308-0d34-0410-b5e6-96231b3b80d8
ddb2147
Eli Friedman Use native endianness for writing out character escapes to the result…
… buffer for string literal parsing. No functional change on little-endian architectures; should fix test failures on PPC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143585 91177308-0d34-0410-b5e6-96231b3b80d8
caf1f26
Akira Hatanaka Return function results whose size is smaller than 128-bits in regist…
…ers if ABI

is N32/64.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143589 91177308-0d34-0410-b5e6-96231b3b80d8
c0e3b66
Douglas Gregor Test code completion for constructor initializers within the class
definition. This already worked; <rdar://problem/10208871>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143595 91177308-0d34-0410-b5e6-96231b3b80d8
3dd0f76
Akira Hatanaka Convert the type of a structure passed by value if it has double prec…
…ision

fields in order to ease handling of such structures in backend. 



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143596 91177308-0d34-0410-b5e6-96231b3b80d8
d5a257f
Commits on Nov 03, 2011
Akira Hatanaka Set MinABIStackAlignInBytes to 8 if ABI is N32/64.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143597 91177308-0d34-0410-b5e6-96231b3b80d8
b551dd3
Douglas Gregor Add a printing policy flag to suppress printing "<anonymous>::" prior
to types. Enable this flag for code completion, where knowing whether
something is in an anonymous or inline namespace is actually not
useful, since you don't have to type it anyway. Fixes
<rdar://problem/10208818>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143599 91177308-0d34-0410-b5e6-96231b3b80d8
25270b6
Jan Wen Voung Do not add "byval" attribute to records with non-trivial copy constru…
…ctors

and destructors in the DefaultABIInfo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143601 91177308-0d34-0410-b5e6-96231b3b80d8
9030693
@akyrtzi akyrtzi [libclang] For c-index-test disable caching of code completion result…
…s if

the CINDEXTEST_COMPLETION_NO_CACHING environment variable is present.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143604 91177308-0d34-0410-b5e6-96231b3b80d8
dcaca01
@akyrtzi akyrtzi [libclang] Add infrastructure to be able to only deserialize decls in…
… a file region and

use it for clang_getCursor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143605 91177308-0d34-0410-b5e6-96231b3b80d8
dfb332d
@akyrtzi akyrtzi [libclang] Add missing return in clang_getExpansionLocation that resu…
…lted in that function

always returning a null file/line/column.

Also add at least one use of clang_getExpansionLocation inside c-index-test that would have
made the tests to catch that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143606 91177308-0d34-0410-b5e6-96231b3b80d8
b4efaa0
Douglas Gregor When we're checking a friend function template in an out-of-line class
definition, we may not have a scope corresponding to the namespace
where that friend function template actually lives. Work around this
issue by faking up a scope with the appropriate DeclContext.

This is a bit of a hack, but it fixes <rdar://problem/10204947>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143614 91177308-0d34-0410-b5e6-96231b3b80d8
fb35e8f
Douglas Gregor Refactor Sema::IsSimplyAccessible slightly, to work on a DeclContext …
…rather than a class

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143615 91177308-0d34-0410-b5e6-96231b3b80d8
17015ef
@jpbonn jpbonn Added nospbias option, changed datalayout and some alignments. 46a2631
@jpbonn jpbonn Merge branch 'master' of http://llvm.org/git/clang f073c88
Douglas Gregor Class can't be null in this context
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143618 91177308-0d34-0410-b5e6-96231b3b80d8
a885dce
Douglas Gregor Teach the ASTImporter to import DefinitionData bits.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143631 91177308-0d34-0410-b5e6-96231b3b80d8
27c72d8
Douglas Gregor Fix grammaro
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143633 91177308-0d34-0410-b5e6-96231b3b80d8
8a0ace6
Douglas Gregor Extend IsSimplyAccessible to check for Objective-C instance variable
accessibility. Fixes <rdar://problem/3727335>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143635 91177308-0d34-0410-b5e6-96231b3b80d8
f3c0286
@akyrtzi akyrtzi [libclang] Add a test for "targeting" a field inside an #include that…
… only

contains fields.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143636 91177308-0d34-0410-b5e6-96231b3b80d8
dc35aac
@akyrtzi akyrtzi [libclang] Use CursorVisitor::Visit instead of invoking the visitor d…
…irectly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143637 91177308-0d34-0410-b5e6-96231b3b80d8
ba98617
@akyrtzi akyrtzi [libclang] Make sure pointing inside the #include of the fields will …
…return the struct.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143638 91177308-0d34-0410-b5e6-96231b3b80d8
ea0e4e8
@akyrtzi akyrtzi [libclang] Move CursorVisitor to its own header.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143639 91177308-0d34-0410-b5e6-96231b3b80d8
e397bf1
@jpbonn jpbonn Merge branch 'master' of http://llvm.org/git/clang 0ed3bd4
Douglas Gregor Force test to use the non-fragile ABI
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143642 91177308-0d34-0410-b5e6-96231b3b80d8
2c62864
@akyrtzi akyrtzi [libclang] Fix crash when a #pragma diagnostic is included in the pre…
…amble.

A PCH file keeps track of #pragma diagnostics state; when loading the preamble, they conflicted
with the #pragma diagnostic state already present in the DiagnosticsEngine object due to
parsing the preamble.

Fix this by clearing the state of the DiagnosticsEngine object.
Fixes rdar://10363572 && http://llvm.org/PR11254.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143644 91177308-0d34-0410-b5e6-96231b3b80d8
e6825d3
Eli Friedman Fix the alignment on scalar parameter variables so that it matches wh…
…at the AST thinks it should be. Per report on cfe-dev.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143645 91177308-0d34-0410-b5e6-96231b3b80d8
ddfb8d1
@jpbonn jpbonn Merge branch 'master' of http://llvm.org/git/clang 3560bfd
Commits on Nov 14, 2011
@jpbonn jpbonn Corrected datalayout. 7389c94
@jpbonn jpbonn Stop clang from overaligning longlong and double. 3f22a64