]> granicus.if.org Git - clang/log
clang
13 years agoAdd new test.
Devang Patel [Fri, 4 Nov 2011 17:12:03 +0000 (17:12 +0000)]
Add new test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143706 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd new test.
Devang Patel [Fri, 4 Nov 2011 16:57:26 +0000 (16:57 +0000)]
Add new test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143704 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[arcmt] For GC, cleanup and turn -finalize to -dealloc.
Argyrios Kyrtzidis [Fri, 4 Nov 2011 15:58:22 +0000 (15:58 +0000)]
[arcmt] For GC, cleanup and turn -finalize to -dealloc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143701 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[arcmt] In GC, error for use of CFMakeCollectable because it will leak the
Argyrios Kyrtzidis [Fri, 4 Nov 2011 15:58:17 +0000 (15:58 +0000)]
[arcmt] In GC, error for use of CFMakeCollectable because it will leak the
object that it receives in ARC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143700 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIn C++ keep unavailable function calls in the AST, like in C/ObjC.
Argyrios Kyrtzidis [Fri, 4 Nov 2011 15:58:13 +0000 (15:58 +0000)]
In C++ keep unavailable function calls in the AST, like in C/ObjC.

This allows the migrator to visit and fix them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143699 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[arcmt] In GC, transform NSMakeCollectable to CFBridgingRelease.
Argyrios Kyrtzidis [Fri, 4 Nov 2011 15:58:08 +0000 (15:58 +0000)]
[arcmt] In GC, transform NSMakeCollectable to CFBridgingRelease.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143698 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove unused variables.
Benjamin Kramer [Fri, 4 Nov 2011 15:05:51 +0000 (15:05 +0000)]
Remove unused variables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143696 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSink the strange '-stdlib=...' flag handling into the C++ include
Chandler Carruth [Fri, 4 Nov 2011 07:43:33 +0000 (07:43 +0000)]
Sink the strange '-stdlib=...' flag handling into the C++ include
handling logic of the generic ToolChain. This flag, despite its name,
has *nothing* to do with the GCC flag '-nostdlib' that relates
(exclusively) to the linking behavior. It is a most unfortunate name in
that regard...

It is used to tell InitHeaderSearch.cpp *which* set of C++ standard
library header search paths to use -- those for libstdc++ from GCC's
installation, or those from a libc++ installation. As this logic is
hoisted out of the Frontend, and into the Driver as part of this
ToolChain, the generic method will be overridden for the platform, where
it can implement this logic directly. As such, hiding the CC1 option
passing in the generic space is a natural fit despite the odd naming.

Also, expand on the comments to clarify whats going on, and tidy up the
Tools.cpp code now that its simpler.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143687 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSink the handling of -fobjc-arc-cxxlib to live with the other -fobjc-arc
Chandler Carruth [Fri, 4 Nov 2011 07:34:47 +0000 (07:34 +0000)]
Sink the handling of -fobjc-arc-cxxlib to live with the other -fobjc-arc
implementation in the driver. This cleans up the signature and semantics
of the include flag adding component of the toolchain. Another step to
ready it for holding all the InitHeaderSearch logic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143686 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a FIXME to cleanup the CPATH handling. It's currently burried with
Chandler Carruth [Fri, 4 Nov 2011 07:12:58 +0000 (07:12 +0000)]
Add a FIXME to cleanup the CPATH handling. It's currently burried with
the rest of the mess in InitHeaderSearch.cpp. We could hoist it into the
driver profitably, removing more noise from the driver -> frontend
communication.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143685 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a system include management interface to the toolchain, and call it
Chandler Carruth [Fri, 4 Nov 2011 07:12:53 +0000 (07:12 +0000)]
Add a system include management interface to the toolchain, and call it
and the C++ include management routine from the proper place when
forming preprocessor options in the driver. This is the first step to
teaching the driver to manage all of the header search paths. Currently,
these methods remain just stubs in the abstract toolchain. Subsequent
patches will flesh them out with implementations for various toolchains
based on the current code in InitHeaderSearch.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143684 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoConstant expression evaluation: refactor to start the groundwork for coping with
Richard Smith [Fri, 4 Nov 2011 05:33:44 +0000 (05:33 +0000)]
Constant expression evaluation: refactor to start the groundwork for coping with
initializations which refer indirectly to elements of the object being
initialized.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143680 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoConstant expression evaluation: track the manner in which an lvalue was written,
Richard Smith [Fri, 4 Nov 2011 02:25:55 +0000 (02:25 +0000)]
Constant expression evaluation: track the manner in which an lvalue was written,
to allow us to implement the C++11 rule that a non-active union member can't be
read, and use it to implement subobject access for string literals.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143677 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoConstant expression evaluation: although we don't know whether a literal will
Richard Smith [Fri, 4 Nov 2011 01:10:57 +0000 (01:10 +0000)]
Constant expression evaluation: although we don't know whether a literal will
be at the same address as another object, we do know it won't alias a null
pointer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143674 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIn the AST dump, add a space between the type and value for CharacterLiteral.
Richard Trieu [Thu, 3 Nov 2011 23:56:23 +0000 (23:56 +0000)]
In the AST dump, add a space between the type and value for CharacterLiteral.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143667 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse a single integer type for a sub-doubleword part of a byval structure.
Akira Hatanaka [Thu, 3 Nov 2011 23:31:00 +0000 (23:31 +0000)]
Use a single integer type for a sub-doubleword part of a byval structure.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143666 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix alignment on alloca's for parameters using ABIArgInfo::Expand.
Eli Friedman [Thu, 3 Nov 2011 21:39:02 +0000 (21:39 +0000)]
Fix alignment on alloca's for parameters using ABIArgInfo::Expand.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143658 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoParse the warning options twice. The first pass sets diagnostic state, while
Chad Rosier [Thu, 3 Nov 2011 21:23:39 +0000 (21:23 +0000)]
Parse the warning options twice.  The first pass sets diagnostic state, while
the second pass reports warnings/errors.  This has the effect that we follow
the more canonical "last option wins" paradigm when there are conflicting
options.
rdar://10383776

Previously, we parsed the warning options in order.  This caused non-intuitive
behavior:

1) clang test.c -Wnosuchwarning -Wno-unknown-warning-option
Before:
warning: unknown warning option '-Wnosuchwarning' [-Wunknown-warning-option]
1 warning generated.
After:
[0 warning generated.]

2) clang test.c -Wnosuchwarning -Werror=unknown-warning-option
Before:
warning: unknown warning option '-Wnosuchwarning' [-Wunknown-warning-option]
1 warning generated.
After:
error: unknown warning option '-Wnosuchwarning' [-Werror,-Wunknown-warning-option]

3) clang test.c -Werror=unknown-warning-option -Wnosuchwarning -Wno-error=unknown-warning-option -Wnosuchwarning
Before:
error: unknown warning option '-Wnosuchwarning' [-Werror,-Wunknown-warning-option]
warning: unknown warning option '-Wnosuchwarning' [-Wunknown-warning-option]
After:
warning: unknown warning option '-Wnosuchwarning' [-Wunknown-warning-option]
warning: unknown warning option '-Wnosuchwarning' [-Wunknown-warning-option]
2 warnings generated.

4) clang test.c -Werror=unknown-warning-option -Wnosuchwarning -Wno-error=unknown-warning-option -Wno-unknown-warning-option -Wnosuchwarning
Before:
error: unknown warning option '-Wnosuchwarning' [-Werror,-Wunknown-warning-option]

After:
[0 warning generated.]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143657 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAfter resetting the diagnostic state, set the number of warning occurring in the...
Argyrios Kyrtzidis [Thu, 3 Nov 2011 20:57:33 +0000 (20:57 +0000)]
After resetting the diagnostic state, set the number of warning occurring in the preamble.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143647 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix the alignment on scalar parameter variables so that it matches what the AST think...
Eli Friedman [Thu, 3 Nov 2011 20:31:28 +0000 (20:31 +0000)]
Fix the alignment on scalar parameter variables so that it matches what 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

13 years ago[libclang] Fix crash when a #pragma diagnostic is included in the preamble.
Argyrios Kyrtzidis [Thu, 3 Nov 2011 20:28:19 +0000 (20:28 +0000)]
[libclang] Fix crash when a #pragma diagnostic is included in the preamble.

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

13 years agoForce test to use the non-fragile ABI
Douglas Gregor [Thu, 3 Nov 2011 19:58:50 +0000 (19:58 +0000)]
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

13 years ago[libclang] Move CursorVisitor to its own header.
Argyrios Kyrtzidis [Thu, 3 Nov 2011 19:02:34 +0000 (19:02 +0000)]
[libclang] Move CursorVisitor to its own header.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143639 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[libclang] Make sure pointing inside the #include of the fields will return the struct.
Argyrios Kyrtzidis [Thu, 3 Nov 2011 19:02:30 +0000 (19:02 +0000)]
[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

13 years ago[libclang] Use CursorVisitor::Visit instead of invoking the visitor directly.
Argyrios Kyrtzidis [Thu, 3 Nov 2011 19:02:28 +0000 (19:02 +0000)]
[libclang] Use CursorVisitor::Visit instead of invoking the visitor directly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143637 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[libclang] Add a test for "targeting" a field inside an #include that only
Argyrios Kyrtzidis [Thu, 3 Nov 2011 19:01:07 +0000 (19:01 +0000)]
[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

13 years agoExtend IsSimplyAccessible to check for Objective-C instance variable
Douglas Gregor [Thu, 3 Nov 2011 19:00:24 +0000 (19:00 +0000)]
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

13 years agoFix grammaro
Douglas Gregor [Thu, 3 Nov 2011 18:33:01 +0000 (18:33 +0000)]
Fix grammaro

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143633 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTeach the ASTImporter to import DefinitionData bits.
Douglas Gregor [Thu, 3 Nov 2011 18:07:07 +0000 (18:07 +0000)]
Teach the ASTImporter to import DefinitionData bits.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143631 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoClass can't be null in this context
Douglas Gregor [Thu, 3 Nov 2011 17:41:55 +0000 (17:41 +0000)]
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

13 years agoRefactor Sema::IsSimplyAccessible slightly, to work on a DeclContext rather than...
Douglas Gregor [Thu, 3 Nov 2011 16:51:37 +0000 (16:51 +0000)]
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

13 years agoWhen we're checking a friend function template in an out-of-line class
Douglas Gregor [Thu, 3 Nov 2011 16:37:14 +0000 (16:37 +0000)]
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

13 years ago[libclang] Add missing return in clang_getExpansionLocation that resulted in that...
Argyrios Kyrtzidis [Thu, 3 Nov 2011 02:20:36 +0000 (02:20 +0000)]
[libclang] Add missing return in clang_getExpansionLocation that resulted 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

13 years ago[libclang] Add infrastructure to be able to only deserialize decls in a file region and
Argyrios Kyrtzidis [Thu, 3 Nov 2011 02:20:32 +0000 (02:20 +0000)]
[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

13 years ago[libclang] For c-index-test disable caching of code completion results if
Argyrios Kyrtzidis [Thu, 3 Nov 2011 02:20:25 +0000 (02:20 +0000)]
[libclang] For c-index-test disable caching of code completion results 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

13 years agoDo not add "byval" attribute to records with non-trivial copy constructors
Jan Wen Voung [Thu, 3 Nov 2011 00:59:44 +0000 (00:59 +0000)]
Do not add "byval" attribute to records with non-trivial copy constructors
and destructors in the DefaultABIInfo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143601 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a printing policy flag to suppress printing "<anonymous>::" prior
Douglas Gregor [Thu, 3 Nov 2011 00:16:13 +0000 (00:16 +0000)]
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

13 years agoSet MinABIStackAlignInBytes to 8 if ABI is N32/64.
Akira Hatanaka [Thu, 3 Nov 2011 00:05:50 +0000 (00:05 +0000)]
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

13 years agoConvert the type of a structure passed by value if it has double precision
Akira Hatanaka [Wed, 2 Nov 2011 23:54:49 +0000 (23:54 +0000)]
Convert the type of a structure passed by value if it has double precision
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

13 years agoTest code completion for constructor initializers within the class
Douglas Gregor [Wed, 2 Nov 2011 23:39:56 +0000 (23:39 +0000)]
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

13 years agoReturn function results whose size is smaller than 128-bits in registers if ABI
Akira Hatanaka [Wed, 2 Nov 2011 23:14:57 +0000 (23:14 +0000)]
Return function results whose size is smaller than 128-bits in registers if ABI
is N32/64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143589 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse native endianness for writing out character escapes to the result buffer for...
Eli Friedman [Wed, 2 Nov 2011 23:06:23 +0000 (23:06 +0000)]
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

13 years agoDon't build member initializers for zero-length or incomplete arrays,
Douglas Gregor [Wed, 2 Nov 2011 23:04:16 +0000 (23:04 +0000)]
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

13 years agoback out changes in r143399 and r143475.
Fariborz Jahanian [Wed, 2 Nov 2011 22:53:43 +0000 (22:53 +0000)]
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

13 years agoDon't encourage bug reports to the Clang mailing list. We have a bug
Douglas Gregor [Wed, 2 Nov 2011 22:49:47 +0000 (22:49 +0000)]
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

13 years agoIn addition to dumping preprocessed source, dump a script with the command line
Chad Rosier [Wed, 2 Nov 2011 21:29:05 +0000 (21:29 +0000)]
In addition to dumping preprocessed source, dump a script with the command 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

13 years agoFix various minor issues find via unreachable code warnings, from
Douglas Gregor [Wed, 2 Nov 2011 20:52:01 +0000 (20:52 +0000)]
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

13 years ago[analyzer] Tweak the test script
Anna Zaks [Wed, 2 Nov 2011 20:46:50 +0000 (20:46 +0000)]
[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

13 years agoAdd the newest Gentoo GCC version based on the reported installed
Chandler Carruth [Wed, 2 Nov 2011 20:09:56 +0000 (20:09 +0000)]
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

13 years ago[analyzer] Start writing Checker Developer Manual.
Anna Zaks [Wed, 2 Nov 2011 17:49:20 +0000 (17:49 +0000)]
[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

13 years agoDrastically simplify the mapping from the declaration corresponding to
Douglas Gregor [Wed, 2 Nov 2011 17:38:53 +0000 (17:38 +0000)]
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

13 years agoUse StringLiteral::getBytes(), not StringLiteral::getString(), when profiling the...
Douglas Gregor [Wed, 2 Nov 2011 17:26:05 +0000 (17:26 +0000)]
Use StringLiteral::getBytes(), not StringLiteral::getString(), when profiling 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

13 years agoFixing some dead links. Patch by Jean-Daniel Dupas!
David Blaikie [Wed, 2 Nov 2011 15:13:40 +0000 (15:13 +0000)]
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

13 years agoRemove virtually empty file.
Benjamin Kramer [Wed, 2 Nov 2011 12:04:24 +0000 (12:04 +0000)]
Remove virtually empty file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143538 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd colors to the C++11 status page.
Michael J. Spencer [Wed, 2 Nov 2011 06:29:37 +0000 (06:29 +0000)]
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

13 years agoInvoke the Darwin assembler with -g instead of --gdwarf2.
Bob Wilson [Wed, 2 Nov 2011 05:10:45 +0000 (05:10 +0000)]
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

13 years agoUpdate the CMake build for clang-tblgen to reflect that it directly
Chandler Carruth [Wed, 2 Nov 2011 05:04:43 +0000 (05:04 +0000)]
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

13 years agoCheck for homogeneous aggregate return values with ARM's AAPCS-VFP ABI.
Bob Wilson [Wed, 2 Nov 2011 04:51:36 +0000 (04:51 +0000)]
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

13 years agoAdd an option to emulate the strange Apple gcc behavior of #pragma pack.
Eli Friedman [Wed, 2 Nov 2011 01:53:16 +0000 (01:53 +0000)]
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

13 years agoobjc: warn if a readonly property has a setter attribute too.
Fariborz Jahanian [Tue, 1 Nov 2011 23:02:16 +0000 (23:02 +0000)]
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

13 years ago[analyzer] Make sink attribute part of the node profile.
Anna Zaks [Tue, 1 Nov 2011 22:41:19 +0000 (22:41 +0000)]
[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

13 years ago[analyzer] Fix PR11282 - an assert in markAsSink
Anna Zaks [Tue, 1 Nov 2011 22:41:14 +0000 (22:41 +0000)]
[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

13 years ago[analyzer] Make sure the child builder use temporary destination sets
Anna Zaks [Tue, 1 Nov 2011 22:41:09 +0000 (22:41 +0000)]
[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

13 years ago[analyzer] BranchNodeBuilder should not generate autotransitions.
Anna Zaks [Tue, 1 Nov 2011 22:41:06 +0000 (22:41 +0000)]
[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

13 years ago[analyzer] CheckerContext::getPredecessor() cleanup
Anna Zaks [Tue, 1 Nov 2011 22:41:01 +0000 (22:41 +0000)]
[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

13 years ago[analyzer] Remove the CheckerContext's destructor.
Anna Zaks [Tue, 1 Nov 2011 22:40:55 +0000 (22:40 +0000)]
[analyzer] Remove the CheckerContext's destructor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143512 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd missing export. Spotted by Leandro Melo.
Eli Friedman [Tue, 1 Nov 2011 22:25:07 +0000 (22:25 +0000)]
Add missing export.  Spotted by Leandro Melo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143508 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen we run into a constructor or destructor that is defined in the
Douglas Gregor [Tue, 1 Nov 2011 22:13:30 +0000 (22:13 +0000)]
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

13 years agoFix r143463 to test what it was intended to test.
Richard Smith [Tue, 1 Nov 2011 21:48:46 +0000 (21:48 +0000)]
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

13 years agoWhen we see an out-of-line definition of a member class template that
Douglas Gregor [Tue, 1 Nov 2011 21:35:16 +0000 (21:35 +0000)]
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

13 years agorename getHostTriple into getDefaultTargetTriple in clang
Sebastian Pop [Tue, 1 Nov 2011 21:33:06 +0000 (21:33 +0000)]
rename getHostTriple into getDefaultTargetTriple in clang

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143503 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen constant-folding, don't look at the initializer of a global const variable
Richard Smith [Tue, 1 Nov 2011 21:06:14 +0000 (21:06 +0000)]
When constant-folding, don't look at the initializer of a global const 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

13 years agoTemporarily disable lvalue-to-rvalue conversions on const pointers while an
Richard Smith [Tue, 1 Nov 2011 20:38:59 +0000 (20:38 +0000)]
Temporarily disable lvalue-to-rvalue conversions on const pointers while 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

13 years agoDo not create sub_dirs. This breaks the CSS links for the website and produces really...
Tanya Lattner [Tue, 1 Nov 2011 20:09:03 +0000 (20:09 +0000)]
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

13 years ago[libclang] Fix non-darwin buildbots.
Argyrios Kyrtzidis [Tue, 1 Nov 2011 19:47:41 +0000 (19:47 +0000)]
[libclang] Fix non-darwin buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143477 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFind copy constructor needed to copy an rvalue reference
Fariborz Jahanian [Tue, 1 Nov 2011 18:57:34 +0000 (18:57 +0000)]
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

13 years agoSilence a warning in -Asserts builds
Matt Beaumont-Gay [Tue, 1 Nov 2011 18:10:22 +0000 (18:10 +0000)]
Silence a warning in -Asserts builds

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143471 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDowngrade err_iboutlet_object_type to a warning. It was breaking a bunch of code...
Ted Kremenek [Tue, 1 Nov 2011 18:08:35 +0000 (18:08 +0000)]
Downgrade err_iboutlet_object_type to a warning.  It was breaking a bunch 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

13 years agoPut a reference of the ASTReader in the ASTUnit.
Argyrios Kyrtzidis [Tue, 1 Nov 2011 17:14:15 +0000 (17:14 +0000)]
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

13 years ago[libclang] For a class extension, give it a unique USR but for any property or ivar
Argyrios Kyrtzidis [Tue, 1 Nov 2011 17:14:12 +0000 (17:14 +0000)]
[libclang] For a class extension, give it a unique USR but for any property 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

13 years agoImplement C++11 'constexpr calls must return constant expressions' rule, and
Richard Smith [Tue, 1 Nov 2011 16:57:24 +0000 (16:57 +0000)]
Implement C++11 'constexpr calls must return constant expressions' rule, 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

13 years agoEnable function call and some overload resolution with parameters of aggregate class...
Sebastian Redl [Tue, 1 Nov 2011 15:53:09 +0000 (15:53 +0000)]
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

13 years agoCorrect test for additional comment line.
Eli Friedman [Tue, 1 Nov 2011 04:46:08 +0000 (04:46 +0000)]
Correct test for additional comment line.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143436 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMark test as requiring x86 backend.
Eli Friedman [Tue, 1 Nov 2011 03:48:36 +0000 (03:48 +0000)]
Mark test as requiring x86 backend.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143427 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't depend on system includes in test.
Eli Friedman [Tue, 1 Nov 2011 03:35:57 +0000 (03:35 +0000)]
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

13 years agoMake test work with ARM C++ ABI.
Eli Friedman [Tue, 1 Nov 2011 03:30:32 +0000 (03:30 +0000)]
Make test work with ARM C++ ABI.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143425 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTests for UTF-8 encoding in strings in source code. Patch by Seth Cantrell.
Eli Friedman [Tue, 1 Nov 2011 02:26:36 +0000 (02:26 +0000)]
Tests for UTF-8 encoding in strings in source code.  Patch by Seth Cantrell.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143418 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix the representation of wide strings in the AST and IR so that it uses the native...
Eli Friedman [Tue, 1 Nov 2011 02:23:42 +0000 (02:23 +0000)]
Fix the representation of wide strings in the AST and IR so that it uses 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

13 years agoPerform proper conversion for strings encoded in the source file as UTF-8. (For...
Eli Friedman [Tue, 1 Nov 2011 02:14:50 +0000 (02:14 +0000)]
Perform proper conversion for strings encoded in the source file as UTF-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

13 years agoMove ConvertUTF8toUTF32 out of #if 0, in preparation for a patch which needs it.
Eli Friedman [Tue, 1 Nov 2011 02:10:54 +0000 (02:10 +0000)]
Move ConvertUTF8toUTF32 out of #if 0, in preparation for a patch which needs it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143415 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd LinkAllPasses to clang
Tobias Grosser [Tue, 1 Nov 2011 01:34:59 +0000 (01:34 +0000)]
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

13 years agoAdd __has_feature(cxx_raw_string_literals) and
Douglas Gregor [Tue, 1 Nov 2011 01:23:44 +0000 (01:23 +0000)]
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

13 years agoAdd __has_feature(cxx_defaulted_functions) for querying "defaulted
Douglas Gregor [Tue, 1 Nov 2011 01:19:34 +0000 (01:19 +0000)]
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

13 years agoRework the AST for the initializer of a delegating constructor, so
Douglas Gregor [Tue, 1 Nov 2011 01:16:03 +0000 (01:16 +0000)]
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

13 years agoAdds IRGen support for captured rvalue references in blocks.
Fariborz Jahanian [Mon, 31 Oct 2011 23:44:33 +0000 (23:44 +0000)]
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

13 years agoSome minor comment changes in constant-folding comparisons.
Eli Friedman [Mon, 31 Oct 2011 22:54:30 +0000 (22:54 +0000)]
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

13 years agoDon't try to fold comparisons between the address of an object and an arbitrary integ...
Eli Friedman [Mon, 31 Oct 2011 22:28:05 +0000 (22:28 +0000)]
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

13 years ago[libclang] Tweak internals of CXSourceLocation to allow an alternate implementation...
Ted Kremenek [Mon, 31 Oct 2011 22:23:51 +0000 (22:23 +0000)]
[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

13 years ago[libclang] Move implementation of functions for manipulation CXSourceLocations and...
Ted Kremenek [Mon, 31 Oct 2011 22:05:42 +0000 (22:05 +0000)]
[libclang] Move implementation of functions for manipulation CXSourceLocations and CXSourceRanges into a separate file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143370 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[libclang] Add CXDiagnosticImpl to represent a super class for the implementation...
Ted Kremenek [Mon, 31 Oct 2011 21:40:19 +0000 (21:40 +0000)]
[libclang] Add CXDiagnosticImpl to represent a super class for the implementation 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