]> granicus.if.org Git - clang/log
clang
12 years agoNow that we support move generation, mention this in the language extension and C...
Sebastian Redl [Mon, 10 Oct 2011 18:10:00 +0000 (18:10 +0000)]
Now that we support move generation, mention this in the language extension and C++ status pages. Also update the C++ status for default functions, which are complete now that we can generate move functions, and destructor exception specifications, which I did a while ago.

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

12 years agoGive nicer note when a member redeclaration has or lacks 'const'
Kaelyn Uhrain [Mon, 10 Oct 2011 18:01:37 +0000 (18:01 +0000)]
Give nicer note when a member redeclaration has or lacks 'const'

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

12 years agoobjc: Some refactoring of overriding method decl. code
Fariborz Jahanian [Mon, 10 Oct 2011 17:53:29 +0000 (17:53 +0000)]
objc: Some refactoring of overriding method decl. code
for future work.

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

12 years agoDon't analyze comparisons in type- or value-dependent
Douglas Gregor [Mon, 10 Oct 2011 17:38:18 +0000 (17:38 +0000)]
Don't analyze comparisons in type- or value-dependent
subexpressions. Fixes PR10291.

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

12 years agoPer C++ [class.bit]p2, unnamed bit-fields are not members. Fixes PR10289.
Douglas Gregor [Mon, 10 Oct 2011 17:22:13 +0000 (17:22 +0000)]
Per C++ [class.bit]p2, unnamed bit-fields are not members. Fixes PR10289.

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

12 years agoconstexpr: Disable checking of constructor member initializer lists for
Richard Smith [Mon, 10 Oct 2011 16:38:04 +0000 (16:38 +0000)]
constexpr: Disable checking of constructor member initializer lists for
constexpr constructor templates. Such checking is optional, and currently hard
to get right since clang doesn't generate implicit member initializers until
instantiation (even for non-dependent members).

This is needed for clang to accept libstdc++ from g++4.6 in c++0x mode.

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

12 years agoDon't complain about qualified property or ivar access when the
Douglas Gregor [Mon, 10 Oct 2011 16:09:49 +0000 (16:09 +0000)]
Don't complain about qualified property or ivar access when the
qualifier itself is invalid. Crasher noticed by Fariborz.

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

12 years agoWhen adding a direct initializer to a declaration, allow the
Douglas Gregor [Mon, 10 Oct 2011 16:05:18 +0000 (16:05 +0000)]
When adding a direct initializer to a declaration, allow the
initializer to update the type of the declaration. For example, this
allows us to determine the size of an incomplete array from its
initializer. Fixes PR10288.

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

12 years agoParse the initializer for a class member after handling its
Douglas Gregor [Mon, 10 Oct 2011 14:49:18 +0000 (14:49 +0000)]
Parse the initializer for a class member after handling its
declarator, so that the declarator is in scope for the
initializer. Fixes PR9989.

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

12 years agoAlways add the built-in overload candidates for operators &&, ||, and
Douglas Gregor [Mon, 10 Oct 2011 14:05:31 +0000 (14:05 +0000)]
Always add the built-in overload candidates for operators &&, ||, and
!. Fixes PR9865.

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

12 years agoRemove the TODO file; it's not interesting any more
Douglas Gregor [Mon, 10 Oct 2011 13:43:20 +0000 (13:43 +0000)]
Remove the TODO file; it's not interesting any more

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

12 years agoAnother case of HadMultipleCandidates being used uninitialized.
Benjamin Kramer [Mon, 10 Oct 2011 12:54:05 +0000 (12:54 +0000)]
Another case of HadMultipleCandidates being used uninitialized.

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

12 years agoBegin work consolidating ShouldDelete* functions.
Sean Hunt [Mon, 10 Oct 2011 06:18:57 +0000 (06:18 +0000)]
Begin work consolidating ShouldDelete* functions.

Begin with just default constructors. One note is that as a side effect
of this, a conformance test was removed on the basis that this is almost
certainly a defect as with most of union initialization. As it is, clang
does not implement union initialization close to the standard as it's
quite broken as written. I hope to write a paper addressing the issues
eventually.

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

12 years agoParse LLVM command line arguments after plugins have been loaded
Tobias Grosser [Mon, 10 Oct 2011 01:23:06 +0000 (01:23 +0000)]
Parse LLVM command line arguments after plugins have been loaded

This fixes a crash due to command line options, that are not available
before the loading of plugins finished.

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

12 years agoImplement the restrictions in C++ [class.friend]p6, which disallow
Douglas Gregor [Mon, 10 Oct 2011 01:11:59 +0000 (01:11 +0000)]
Implement the restrictions in C++ [class.friend]p6, which disallow
defining a friend function with a qualified name or in a local
class. Fixes PR9853.

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

12 years agoDiagnose attempts to qualify the name of an instance variable or
Douglas Gregor [Sun, 9 Oct 2011 23:22:49 +0000 (23:22 +0000)]
Diagnose attempts to qualify the name of an instance variable or
property in an Objective-C++ member access expression. Fixes PR9759.

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

12 years agoPush "out-of-line" declarations into scope when their lexical/semantic
Douglas Gregor [Sun, 9 Oct 2011 22:57:49 +0000 (22:57 +0000)]
Push "out-of-line" declarations into scope when their lexical/semantic
redeclaration contexts are the same, as occurs within linkage
specifications. Fixes PR9162.

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

12 years agoThe effective context of a friend function is its lexical
Douglas Gregor [Sun, 9 Oct 2011 22:38:36 +0000 (22:38 +0000)]
The effective context of a friend function is its lexical
context. Fixes PR9103.

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

12 years agoFor the various CF and NS attributes, don't complain if the parameter
Douglas Gregor [Sun, 9 Oct 2011 22:26:49 +0000 (22:26 +0000)]
For the various CF and NS attributes, don't complain if the parameter
or return types are dependent. Fixes PR9049.

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

12 years agoPer the note in C++0x [temp.deduct.call]p4, don't attempt template
Douglas Gregor [Sun, 9 Oct 2011 22:06:46 +0000 (22:06 +0000)]
Per the note in C++0x [temp.deduct.call]p4, don't attempt template
argument deduction against a function parameter that has no deducible
template parameters in it. Fixes PR8598.

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

12 years agoOpenCL: add driver/frontend support for precompiled headers
Peter Collingbourne [Sun, 9 Oct 2011 22:03:19 +0000 (22:03 +0000)]
OpenCL: add driver/frontend support for precompiled headers

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

12 years agoA friend template specialization is also dependent if any of its
Douglas Gregor [Sun, 9 Oct 2011 20:59:17 +0000 (20:59 +0000)]
A friend template specialization is also dependent if any of its
template arguments are dependent. Fixes PR10913.

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

12 years agoOnly allow taking the address of an expression of type 'overloaded
Douglas Gregor [Sun, 9 Oct 2011 19:10:41 +0000 (19:10 +0000)]
Only allow taking the address of an expression of type 'overloaded
function type' when that expression is actually an overloaded function
reference (and not the address of an overloaded function
reference). Fixes PR11066.

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

12 years agoDiagnose attempts to declare a non-static data member with a
Douglas Gregor [Sun, 9 Oct 2011 18:55:59 +0000 (18:55 +0000)]
Diagnose attempts to declare a non-static data member with a
non-identifier name. Fixes PR10839.

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

12 years agoWhen building source location information for an _Atomic type, be sure
Douglas Gregor [Sun, 9 Oct 2011 18:45:17 +0000 (18:45 +0000)]
When building source location information for an _Atomic type, be sure
to fill in the source locations for the underlying value type. Fixes
an intermittent crasher (due to uninitialized data) in the PCH test
for _Atomic types.

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

12 years agoAfter instantiating a 'noexcept' expression, be sure to convert it to
Douglas Gregor [Sun, 9 Oct 2011 18:31:23 +0000 (18:31 +0000)]
After instantiating a 'noexcept' expression, be sure to convert it to
a boolean value and check that it is a constant expression. Fixes
PR11084.

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

12 years agoInitialize the HadMultipleCandidates flag.
Benjamin Kramer [Sun, 9 Oct 2011 17:58:25 +0000 (17:58 +0000)]
Initialize the HadMultipleCandidates flag.

Found by valgrind.

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

12 years agoobjc: Do not warn about mismatch on Super's readonly property attribute,
Fariborz Jahanian [Sat, 8 Oct 2011 17:45:33 +0000 (17:45 +0000)]
objc: Do not warn about mismatch on Super's readonly property attribute,
related to a readwrite property, and
Sub's readwrite property. // rdar://9396329

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

12 years agoSilence a warning about casting away constness.
Benjamin Kramer [Sat, 8 Oct 2011 16:15:07 +0000 (16:15 +0000)]
Silence a warning about casting away constness.

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

12 years agolib/Frontend/CompilerInstance.cpp: Suppress a "Comparision of unsigned and signed...
NAKAMURA Takumi [Sat, 8 Oct 2011 11:31:58 +0000 (11:31 +0000)]
lib/Frontend/CompilerInstance.cpp: Suppress a "Comparision of unsigned and signed" warning on Cygwin gcc-4.3.4.

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

12 years agoFix "Uninitialized" warnings.
NAKAMURA Takumi [Sat, 8 Oct 2011 11:31:53 +0000 (11:31 +0000)]
Fix "Uninitialized" warnings.

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

12 years agoWhitespace
NAKAMURA Takumi [Sat, 8 Oct 2011 11:31:46 +0000 (11:31 +0000)]
Whitespace

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

12 years agoApparently getPtrToInt() takes an explicit type parameter to allow you to generate...
David Chisnall [Sat, 8 Oct 2011 08:54:36 +0000 (08:54 +0000)]
Apparently getPtrToInt() takes an explicit type parameter to allow you to generate invalid bitcode, not so that it can actually produce a value of this type.  This should fix PR11085.

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

12 years agoFree 'TheTargetCodeGenInfo' in the class CodeGenModule. This looks like an obvious...
Ted Kremenek [Sat, 8 Oct 2011 05:28:26 +0000 (05:28 +0000)]
Free 'TheTargetCodeGenInfo' in the class CodeGenModule.  This looks like an obvious memory leak that was reported from LLDB devs.  The comment indicates the leak is deliberate, but I have no idea why this needs to be so.  Please comment/revert if you know otherwise.

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

12 years agoFix warning on MSVC. Patch by Aaron Ballman.
Eli Friedman [Sat, 8 Oct 2011 01:03:47 +0000 (01:03 +0000)]
Fix warning on MSVC.  Patch by Aaron Ballman.

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

12 years agoTry fixing windows bots.
Argyrios Kyrtzidis [Sat, 8 Oct 2011 00:54:49 +0000 (00:54 +0000)]
Try fixing windows bots.

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

12 years agoMake clang-tblgen's Makefile independent of Clang's top-level Makefile,
Peter Collingbourne [Sat, 8 Oct 2011 00:26:35 +0000 (00:26 +0000)]
Make clang-tblgen's Makefile independent of Clang's top-level Makefile,
to avoid having to make it available for the cross build when it
builds only clang-tblgen.

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

12 years ago[arcmt] Ignore linking errors when doing ARC migration, rdar://10247606
Argyrios Kyrtzidis [Fri, 7 Oct 2011 22:58:08 +0000 (22:58 +0000)]
[arcmt] Ignore linking errors when doing ARC migration, rdar://10247606

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

12 years agoProvide basic static analyzer support for CXXTemporaryObjectExpr. Patch by Jim Goodn...
Ted Kremenek [Fri, 7 Oct 2011 22:48:13 +0000 (22:48 +0000)]
Provide basic static analyzer support for CXXTemporaryObjectExpr.  Patch by Jim Goodnow II.

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

12 years ago[analyzer] Remove dead code.
Anna Zaks [Fri, 7 Oct 2011 22:35:23 +0000 (22:35 +0000)]
[analyzer] Remove dead code.

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

12 years agoRemove AnalysisContext::getLiveVariables(), and introduce a templatized mechanism...
Ted Kremenek [Fri, 7 Oct 2011 22:21:02 +0000 (22:21 +0000)]
Remove AnalysisContext::getLiveVariables(), and introduce a templatized mechanism to lazily create analyses that are attached to AnalysisContext objects.

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

12 years agoIn DeclContext::LoadLexicalDeclsFromExternalStorage don't clear out
Argyrios Kyrtzidis [Fri, 7 Oct 2011 21:55:43 +0000 (21:55 +0000)]
In DeclContext::LoadLexicalDeclsFromExternalStorage don't clear out
the fields if they are already loaded, just ignore them when we are building
the chain in BuildDeclChain.

This fixes an lldb issue where fields were removed and not getting re-added
because lldb is based on ASTImporter adding decls to DeclContext and fields
were already added before by the ASTImporter.

We should really simplify the interaction between DeclContext <-> lldb
going forward..

rdar://10246067

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

12 years ago[analyzer] Previously, we were passing to CheckerContext enough info to construct...
Anna Zaks [Fri, 7 Oct 2011 21:52:33 +0000 (21:52 +0000)]
[analyzer] Previously, we were passing to CheckerContext enough info to construct ProgramPoint and it would pass it to NodeBuilder, which in turn would construct the ProgramPoint. Simplify it by just passing the ProgramPoint to CheckerContext. The ProgramPoint can only change if a checker tags it, in which case, we create a copy with the given tag.

(A step closer to making CheckerContext work with all node builders, not only StmtNodeBuilder.)

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

12 years agoobjc++: some minor cleanup and a test case
Fariborz Jahanian [Fri, 7 Oct 2011 21:08:14 +0000 (21:08 +0000)]
objc++: some minor cleanup and a test case
for atomic setters which requires assignment operator.

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

12 years agoProgramPoint cleanup after the previous commit r141408 (remove the copy constructor...
Anna Zaks [Fri, 7 Oct 2011 21:01:38 +0000 (21:01 +0000)]
ProgramPoint cleanup after the previous commit r141408 (remove the copy constructor, mark withTag const).

Move getProgramPoint() utility from CoreEngine.cpp into ProgramPoint.

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

12 years agoAdd braces around do-while body. The lack of them gives me the chills
Douglas Gregor [Fri, 7 Oct 2011 20:35:25 +0000 (20:35 +0000)]
Add braces around do-while body. The lack of them gives me the chills

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

12 years agoAdd a simple PCH test for _Atomic.
Eli Friedman [Fri, 7 Oct 2011 20:08:35 +0000 (20:08 +0000)]
Add a simple PCH test for _Atomic.

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

12 years agoAdd a copy constructor to ProgramPoint and pull withTag() method from a child. (withT...
Anna Zaks [Fri, 7 Oct 2011 20:08:27 +0000 (20:08 +0000)]
Add a copy constructor to ProgramPoint and pull withTag() method from a child. (withTag essentialy creates a copy with a given tag.)

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

12 years agoAdd address spaces for TCE target. Patch by Pekka Jääskeläinen.
Eli Friedman [Fri, 7 Oct 2011 19:51:42 +0000 (19:51 +0000)]
Add address spaces for TCE target.  Patch by Pekka Jääskeläinen.

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

12 years agoHack in a workaround for PR11082 until we have a proper fix. This
Chandler Carruth [Fri, 7 Oct 2011 18:40:27 +0000 (18:40 +0000)]
Hack in a workaround for PR11082 until we have a proper fix. This
un-breaks every glib-dependent compile with Clang.

I'm not sure this is even the best workaround, so suggestions welcome.

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

12 years agoClang driver changes for iOS 5.0 and OS X Lion support.
Bob Wilson [Fri, 7 Oct 2011 17:54:41 +0000 (17:54 +0000)]
Clang driver changes for iOS 5.0 and OS X Lion support.

Check whether the libc++ library is available when using -stdlib=libc++,
and also adjust the check for whether to link with -lgcc_s.1.
Patch by Ted Kremenek and Daniel Dunbar.

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

12 years agoMore cleanup using StringSwitch.
Chad Rosier [Fri, 7 Oct 2011 17:48:56 +0000 (17:48 +0000)]
More cleanup using StringSwitch.

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

12 years agoobjc rewriter. Fix declaration of objc_msgSend_stret/objc_msgSendSuper_stret.
Fariborz Jahanian [Fri, 7 Oct 2011 17:17:45 +0000 (17:17 +0000)]
objc rewriter. Fix declaration of objc_msgSend_stret/objc_msgSendSuper_stret.
Fix an assert crash when casting a CF type to 'id'.
// rdar://10250911

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

12 years agoRename TagDecl::isDefinition -> isCompleteDefinition
John McCall [Fri, 7 Oct 2011 06:10:15 +0000 (06:10 +0000)]
Rename TagDecl::isDefinition -> isCompleteDefinition
for better self-documenting code, since the semantics
are subtly different from getDefinition().

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

12 years agoRemove FIXME obsoleted by change r141279 for PR11067.
Richard Smith [Fri, 7 Oct 2011 03:16:33 +0000 (03:16 +0000)]
Remove FIXME obsoleted by change r141279 for PR11067.

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

12 years agoRecord layout requires not just a definition, but a complete
John McCall [Fri, 7 Oct 2011 02:39:22 +0000 (02:39 +0000)]
Record layout requires not just a definition, but a complete
definition.  Assert this.  Change IR generation to not try to
aggressively emit the IR translation of a record during its
own definition.  Fixes PR10912.

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

12 years agor141345 also fixed a -Wuninitialized bug where loop conditions were not always flagge...
Ted Kremenek [Fri, 7 Oct 2011 00:52:56 +0000 (00:52 +0000)]
r141345 also fixed a -Wuninitialized bug where loop conditions were not always flagged as being uninitialized.  Addresses <rdar://problem/9432305>.

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

12 years agoFix infinite loop in -Wuninitialized reported in PR 11069.
Ted Kremenek [Fri, 7 Oct 2011 00:42:48 +0000 (00:42 +0000)]
Fix infinite loop in -Wuninitialized reported in PR 11069.

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

12 years agoUse StringSwitch. Thanks for Chandler for the suggestion.
Bob Wilson [Fri, 7 Oct 2011 00:37:57 +0000 (00:37 +0000)]
Use StringSwitch.  Thanks for Chandler for the suggestion.

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

12 years agoobjc: Improve on diagnostic when atomic proeprty is synthesized
Fariborz Jahanian [Thu, 6 Oct 2011 23:47:58 +0000 (23:47 +0000)]
objc: Improve on diagnostic when atomic proeprty is synthesized
on one accessor and user-provide with another.

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

12 years ago[analyzer] Static Analyzer Qualification Infrastructure: Scripts to support basic...
Anna Zaks [Thu, 6 Oct 2011 23:26:27 +0000 (23:26 +0000)]
[analyzer] Static Analyzer Qualification Infrastructure: Scripts to support basic testing of the analyzer on external projects. This can be used as a basis for setting up a buildbot.

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

12 years agoMove type-checking for C-style casts in C into the now-misnamed
John McCall [Thu, 6 Oct 2011 23:25:11 +0000 (23:25 +0000)]
Move type-checking for C-style casts in C into the now-misnamed
SemaCXXCast.cpp.  Should have no functionality change.

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

12 years agoImplicitly assume that a ObjC category to an unavailable interface is also unavailable;
Argyrios Kyrtzidis [Thu, 6 Oct 2011 23:23:27 +0000 (23:23 +0000)]
Implicitly assume that a ObjC category to an unavailable interface is also unavailable;
only give an 'unavailable' error on the @implementation of the category. rdar://10234078

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

12 years agoWhen using an unavailable/deprecated interface Foo inside Foo's interface/implementation
Argyrios Kyrtzidis [Thu, 6 Oct 2011 23:23:20 +0000 (23:23 +0000)]
When using an unavailable/deprecated interface Foo inside Foo's interface/implementation
don't emit unavailable errors.

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

12 years agollvm.memory.barrier is going away; remove the wrapper intrinsic __builtin_llvm_memory...
Eli Friedman [Thu, 6 Oct 2011 23:12:03 +0000 (23:12 +0000)]
llvm.memory.barrier is going away; remove the wrapper intrinsic __builtin_llvm_memory_barrier.

__atomic_thread_fence will be landing soon as a replacement, wrapping around the new fence instruction.

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

12 years agoSupport for C1x _Atomic specifier (see testcase). This is primarily being committed...
Eli Friedman [Thu, 6 Oct 2011 23:00:33 +0000 (23:00 +0000)]
Support for C1x _Atomic specifier (see testcase).  This is primarily being committed at the moment to help support C++0x <atomic>, but it should be a solid base for implementing the full specification of C1x _Atomic.

Thanks to Jeffrey Yasskin for the thorough review!

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

12 years agoUse strpbrk(3) instead of open coding it.
Benjamin Kramer [Thu, 6 Oct 2011 22:53:35 +0000 (22:53 +0000)]
Use strpbrk(3) instead of open coding it.

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

12 years agoAdd missing include to clang-interpreter example, to make it work on Windows. Patch...
Eli Friedman [Thu, 6 Oct 2011 22:24:13 +0000 (22:24 +0000)]
Add missing include to clang-interpreter example, to make it work on Windows.  Patch by Dean Pavlekovic.

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

12 years ago[driver] Fix test case for Windows due to fallout from r141202+r141205.
Chad Rosier [Thu, 6 Oct 2011 22:05:26 +0000 (22:05 +0000)]
[driver] Fix test case for Windows due to fallout from r141202+r141205.

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

12 years agoRemove DISABLE_ARM_DARWIN_USE_MOVT ifdefs. Radar 9456730.
Bob Wilson [Thu, 6 Oct 2011 21:52:27 +0000 (21:52 +0000)]
Remove DISABLE_ARM_DARWIN_USE_MOVT ifdefs.  Radar 9456730.

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

12 years ago[static analyzer] Fix crash in LiveVariables and Environment::getSVal() when analyzin...
Ted Kremenek [Thu, 6 Oct 2011 20:53:28 +0000 (20:53 +0000)]
[static analyzer] Fix crash in LiveVariables and Environment::getSVal() when analyzing C++ pointer-to-member calls.  Fixes <rdar://problem/10243398>.

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

12 years agoAdd _mm_comige_sd to emmintrin.h, since I apparently forgot to do this in r138769.
Eli Friedman [Thu, 6 Oct 2011 20:31:50 +0000 (20:31 +0000)]
Add _mm_comige_sd to emmintrin.h, since I apparently forgot to do this in r138769.

<rdar://problem/10230751>

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

12 years agoRearrange for readability. No functional change.
Bob Wilson [Thu, 6 Oct 2011 20:27:40 +0000 (20:27 +0000)]
Rearrange for readability.  No functional change.

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

12 years agoAdd a missing check for cortex-a9.
Bob Wilson [Thu, 6 Oct 2011 20:27:38 +0000 (20:27 +0000)]
Add a missing check for cortex-a9.

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

12 years agoCUDA: IR generation support for device stubs
Peter Collingbourne [Thu, 6 Oct 2011 18:51:56 +0000 (18:51 +0000)]
CUDA: IR generation support for device stubs

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

12 years agoobjc++: For atomic properties of c++ class objec typet, appropriate
Fariborz Jahanian [Thu, 6 Oct 2011 18:38:18 +0000 (18:38 +0000)]
objc++: For atomic properties of c++ class objec typet, appropriate
operator= is called. Issue a warning for non-trivial case until
runtime support is provided. // rdar://6137845

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

12 years agoCUDA: add -fcuda-is-device flag
Peter Collingbourne [Thu, 6 Oct 2011 18:29:46 +0000 (18:29 +0000)]
CUDA: add -fcuda-is-device flag

This frontend-only flag is used by the IR generator to determine
whether to filter CUDA declarations for the host or for the device.

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

12 years agoCUDA: IR generation support for kernel call expressions
Peter Collingbourne [Thu, 6 Oct 2011 18:29:37 +0000 (18:29 +0000)]
CUDA: IR generation support for kernel call expressions

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

12 years agoCUDA: set proper calling conventions for PTX
Peter Collingbourne [Thu, 6 Oct 2011 16:49:54 +0000 (16:49 +0000)]
CUDA: set proper calling conventions for PTX

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

12 years ago[libclang] Removed accidental addition of CXCursor_AnnotateAttr.
Erik Verbruggen [Thu, 6 Oct 2011 13:12:18 +0000 (13:12 +0000)]
[libclang] Removed accidental addition of CXCursor_AnnotateAttr.

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

12 years agoAdd the Clang tblgen backends to Clang, and flip the switch to cause
Peter Collingbourne [Thu, 6 Oct 2011 13:03:08 +0000 (13:03 +0000)]
Add the Clang tblgen backends to Clang, and flip the switch to cause
the build systems to use clang-tblgen.

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

12 years ago[libclang] Fix symbol export for clang_Range_isNull so MSVC won't complain.
Erik Verbruggen [Thu, 6 Oct 2011 12:11:57 +0000 (12:11 +0000)]
[libclang] Fix symbol export for clang_Range_isNull so MSVC won't complain.

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

12 years agoFixed GCC (C90) and Clang warnings.
Erik Verbruggen [Thu, 6 Oct 2011 11:38:08 +0000 (11:38 +0000)]
Fixed GCC (C90) and Clang warnings.

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

12 years agoPR11067: A definition of a constexpr static variable doesn't need an initializer...
Richard Smith [Thu, 6 Oct 2011 09:21:12 +0000 (09:21 +0000)]
PR11067: A definition of a constexpr static variable doesn't need an initializer if the in-class declaration had one. Such a declaration must be initialized by a constant expression.

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

12 years agoAdded CXAvailability_NotAccessible to indicate that a declaration is available, but...
Erik Verbruggen [Thu, 6 Oct 2011 07:27:49 +0000 (07:27 +0000)]
Added CXAvailability_NotAccessible to indicate that a declaration is available, but not accessible from the current code completion context.

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

12 years ago[libclang] Introduce clang_findReferencesInFile which accepts a cursor, a file,
Argyrios Kyrtzidis [Thu, 6 Oct 2011 07:00:54 +0000 (07:00 +0000)]
[libclang] Introduce clang_findReferencesInFile which accepts a cursor, a file,
and a callback and finds all identifier references of the cursor in the file.

rdar://7948304

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

12 years ago[libclang] Move the bulk of clang_getOverriddenCursors into
Argyrios Kyrtzidis [Thu, 6 Oct 2011 07:00:46 +0000 (07:00 +0000)]
[libclang] Move the bulk of clang_getOverriddenCursors into
a cxcursor::getOverriddenCursors C++ function, because SmallVectors
are groovier that malloc'ing buffers.

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

12 years agoUse a sidetable in ASTContext for ParmVarDecls whose index exceeds the 8 bits reserve...
Ted Kremenek [Thu, 6 Oct 2011 05:00:56 +0000 (05:00 +0000)]
Use a sidetable in ASTContext for ParmVarDecls whose index exceeds the 8 bits reserved for that value in VarDecl.  Fixes PR 10538.

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

12 years agoHoist truncation checking for ParmVarDeclBitfields::ParameterIndex into its own helpe...
Ted Kremenek [Thu, 6 Oct 2011 04:19:35 +0000 (04:19 +0000)]
Hoist truncation checking for ParmVarDeclBitfields::ParameterIndex into its own helper method.  No functionality change.

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

12 years agoOpenCL: add a non-standard extension, cl_clang_storage_class_specifiers,
Peter Collingbourne [Thu, 6 Oct 2011 03:01:00 +0000 (03:01 +0000)]
OpenCL: add a non-standard extension, cl_clang_storage_class_specifiers,
which enables support for C99 storage-class specifiers.

This extension is intended to be used by implementations to implement
OpenCL C built-in functions.

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

12 years agoOpenCL: disallow '#pragma OPENCL EXTENSION all : enable', per OpenCL 1.1 9.1
Peter Collingbourne [Thu, 6 Oct 2011 03:00:50 +0000 (03:00 +0000)]
OpenCL: disallow '#pragma OPENCL EXTENSION all : enable', per OpenCL 1.1 9.1

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

12 years agoAdd -Wlanguage-extension-token option for ext_token_used warning.
Ivan Krasin [Thu, 6 Oct 2011 02:46:34 +0000 (02:46 +0000)]
Add -Wlanguage-extension-token option for ext_token_used warning.

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

12 years agoClang-side build system infrastructure for multiple tblgens.
Peter Collingbourne [Thu, 6 Oct 2011 01:52:10 +0000 (01:52 +0000)]
Clang-side build system infrastructure for multiple tblgens.

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

12 years ago[analyzer] Remove the dependency on CheckerContext::getStmt() as well as the method...
Anna Zaks [Thu, 6 Oct 2011 00:43:15 +0000 (00:43 +0000)]
[analyzer] Remove the dependency on CheckerContext::getStmt() as well as the method itself.

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

12 years agoWhen constructing debug information for synthesized variables for the
Eric Christopher [Thu, 6 Oct 2011 00:31:18 +0000 (00:31 +0000)]
When constructing debug information for synthesized variables for the
non-fragile ABI we may not be able to lay out the type and the debugger
would ignore us even if we did put in the offset. Go ahead and just
put any value there and don't look up the offset since it may not exist.

rdar://10210157

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

12 years agoReformat comment.
Eric Christopher [Thu, 6 Oct 2011 00:30:52 +0000 (00:30 +0000)]
Reformat comment.

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

12 years agoFix major regression in RetainCountChecker. DefaultSummaries were not being used...
Ted Kremenek [Wed, 5 Oct 2011 23:54:29 +0000 (23:54 +0000)]
Fix major regression in RetainCountChecker.  DefaultSummaries were not being used when they were meant to be.  Fixes <rdar://problem/10241614>.

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

12 years ago[analyzer] Remove the last dependency on CheckerContext::getNodeBuilder() as well...
Anna Zaks [Wed, 5 Oct 2011 23:44:11 +0000 (23:44 +0000)]
[analyzer] Remove the last dependency on CheckerContext::getNodeBuilder() as well as the method itself.

Checkers should not directly access NodeBuilder, nodes can be created by calling the CheckerContext's generateNode() methods.

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

12 years ago[analyzer] OSAtomicChecker implements evalCall in a very invasive way - it essentiall...
Anna Zaks [Wed, 5 Oct 2011 23:37:30 +0000 (23:37 +0000)]
[analyzer] OSAtomicChecker implements evalCall in a very invasive way - it essentially simulates inlining of compareAndSwap() by means of setting the NodeBuilder flags and calling ExprEngine directly.

This commit introduces a new callback just for this checker to unblock checker API cleanup.

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

12 years agoDocument ObjCMethodDecl::setMethodParams.
Argyrios Kyrtzidis [Wed, 5 Oct 2011 21:34:09 +0000 (21:34 +0000)]
Document ObjCMethodDecl::setMethodParams.

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