]> granicus.if.org Git - clang/log
clang
12 years ago[analyzer] Do not step into statements while collecting function decls.
Anna Zaks [Thu, 21 Jun 2012 20:36:11 +0000 (20:36 +0000)]
[analyzer] Do not step into statements while collecting function decls.

CallGraph's recursive visitor only needs to collect declarations; their
bodies will be processed later on. RecursiveASTVisitor will recurse on
the bodies if the definition is provided along with declaration.
Optimize, by not recursing on any of the statements.

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

12 years agoPR13165: False positive when initializing member data pointers with NULL.
David Blaikie [Thu, 21 Jun 2012 18:51:10 +0000 (18:51 +0000)]
PR13165: False positive when initializing member data pointers with NULL.

This now correctly covers, I believe, all the pointer types:
* 'any' pointers (both function and data normal pointers and ObjC object pointers)
* member pointers (both function and data)
* block pointers

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

12 years agoobjective-c: deprecated C-like parameters in Objective-C
Fariborz Jahanian [Thu, 21 Jun 2012 18:43:08 +0000 (18:43 +0000)]
objective-c: deprecated C-like parameters in Objective-C
method declarations.
// rdar://11578353.

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

12 years agoAdjust this code so that it strictly honors
John McCall [Thu, 21 Jun 2012 17:46:38 +0000 (17:46 +0000)]
Adjust this code so that it strictly honors
TargetSimulatroVersionFromDefines if present;  this also makes
it easier to chain things correctly.  Noted by an internal
review.

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

12 years agoLess restrictive check in unit test for unsupported debug info options
Alexey Samsonov [Thu, 21 Jun 2012 13:30:54 +0000 (13:30 +0000)]
Less restrictive check in unit test for unsupported debug info options

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

12 years agoRevert r158423 corresponding to r158796, "test/Driver/warning-options.cpp: Mark as...
NAKAMURA Takumi [Thu, 21 Jun 2012 12:45:24 +0000 (12:45 +0000)]
Revert r158423 corresponding to r158796, "test/Driver/warning-options.cpp: Mark as XFAIL:cygming. -pedantic is passed with gcc-as driver. PR12920"

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

12 years agoClang side of a refactoring of the CMake unit test build strategy.
Chandler Carruth [Thu, 21 Jun 2012 09:51:42 +0000 (09:51 +0000)]
Clang side of a refactoring of the CMake unit test build strategy.

The fundamental change is to put a CMakeLists.txt file in the unittest
directory, with a single test binary produced from it. This has several
advantages.

Among other fundamental advantages, we start to get the checking logic
for when a file is missing from the CMake build, and this caught one
missing file already! More fun details in the LLVM commit corresponding
to this one.

Note that the LLVM commit and this one most both be applied, or neither.
Sorry for any skew issues.

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

12 years agoMake the RecursiveASTVisitor visit the body of a range-based for loop
Daniel Jasper [Thu, 21 Jun 2012 08:50:04 +0000 (08:50 +0000)]
Make the RecursiveASTVisitor visit the body of a range-based for loop
again. This was broken in r158395.

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

12 years agoImprove support for -g options accepted by Clang:
Alexey Samsonov [Thu, 21 Jun 2012 08:22:39 +0000 (08:22 +0000)]
Improve support for -g options accepted by Clang:
1. Accept flags -g[0-3], -ggdb[0-3], -gdwarf-[2-4] and collapse them to simple -g (except -g0/-ggdb0).
2. Produce driver error on unsupported formats (-gcoff, -gstabs, -gvms) and options (-gtoggle).
3. Recognize and ignore flags -g[no-]strict-dwarf, -g[no-]record-gcc-switches.

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

12 years agoPretend that enum constants have enum type when inferring a block return type.
Jordan Rose [Thu, 21 Jun 2012 05:54:55 +0000 (05:54 +0000)]
Pretend that enum constants have enum type when inferring a block return type.

In C, enum constants have the type of the enum's underlying integer type,
rather than the type of the enum. (This is not true in C++.) This leads to
odd warnings when returning enum constants directly in blocks with inferred
return types. The easiest way out of this is to pretend that, like C++, enum
constants have enum type when being returned from a block.

<rdar://problem/11662489>

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

12 years agoDon't warn for -Wstatic-in-inline if the used function is also inline.
Jordan Rose [Thu, 21 Jun 2012 05:54:50 +0000 (05:54 +0000)]
Don't warn for -Wstatic-in-inline if the used function is also inline.

Also, don't warn if the used function is __attribute__((const)), in which case
it's not supposed to use global variables anyway.

The inline-in-inline thing is a heuristic, and one that's possibly incorrect
fairly often because the function being inlined could definitely use global
variables. However, even some C standard library functions are written using
other (trivial) static-inline functions in the headers, and we definitely don't
want to be warning on that (or on anything that /uses/ these trivial inline
functions). So we're using "inlined" as a marker for "fairly trivial".

(Note that __attribute__((pure)) does /not/ guarantee safety like ((const),
because ((const)) does not guarantee that global variables are not being used,
and the warning is about globals not being shared across TUs.)

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

12 years agoSwitch Clang to re-use the the newly factored common LLVM
Chandler Carruth [Thu, 21 Jun 2012 05:23:23 +0000 (05:23 +0000)]
Switch Clang to re-use the the newly factored common LLVM
implementation. Yay for '-' lines in CMake!

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

12 years agoMS: Mangle rvalue references and nullptr_t, and produce back-references when
Richard Smith [Thu, 21 Jun 2012 02:52:27 +0000 (02:52 +0000)]
MS: Mangle rvalue references and nullptr_t, and produce back-references when
appropriate. Patch by João Matos!

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

12 years agoSimplify the Clang unittest function in the CMake build, and make it
Chandler Carruth [Thu, 21 Jun 2012 02:04:39 +0000 (02:04 +0000)]
Simplify the Clang unittest function in the CMake build, and make it
match the LLVM implemenation. This also simplifies the name management
and splits the custom library management out from the unittest specific
management. It finally drops the dependency on parsing cmake arguments.

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

12 years agoRemove a goofy CMake hack and use the standard CMake facilities to
Chandler Carruth [Thu, 21 Jun 2012 01:30:21 +0000 (01:30 +0000)]
Remove a goofy CMake hack and use the standard CMake facilities to
express library-level dependencies within Clang.

This is no more verbose really, and plays nicer with the rest of the
CMake facilities. It should also have no change in functionality.

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

12 years agoIf an object (such as a std::string) with an appropriate c_str() member function
Richard Smith [Thu, 21 Jun 2012 01:08:35 +0000 (01:08 +0000)]
If an object (such as a std::string) with an appropriate c_str() member function
is passed to a variadic function in a position where a format string indicates
that c_str()'s return type is desired, provide a note suggesting that the user
may have intended to call the c_str() member.

Factor the non-POD-vararg checking out of DefaultVariadicArgumentPromotion and
move it to SemaChecking in order to facilitate this. Factor the call checking
out of function call checking and block call checking, and extend it to cover
constructor calls too.

Patch by Sam Panzer!

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

12 years agoRemove an unused feature of the clang unittest macro.
Chandler Carruth [Thu, 21 Jun 2012 00:40:48 +0000 (00:40 +0000)]
Remove an unused feature of the clang unittest macro.

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

12 years agoDo not complain about junk on the end of a #endif in a skipped block. Such junk
Richard Smith [Thu, 21 Jun 2012 00:35:03 +0000 (00:35 +0000)]
Do not complain about junk on the end of a #endif in a skipped block. Such junk
is permitted by all relevant language standards. Patch by Andy Gibbs!

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

12 years agoRawCommentList::addComment: fix the assertion so it actually checks that new comment...
Dmitri Gribenko [Thu, 21 Jun 2012 00:28:14 +0000 (00:28 +0000)]
RawCommentList::addComment: fix the assertion so it actually checks that new comment is after the last one (change Comments[0] to Comments.back()), and handle the case of two consecutive comments, e.g. /** *//* */.  There is already a testcase for that (but it didn't trigger the assert because the assert itself was wrong).

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

12 years ago[analyzer] Malloc leak false positive: Allow xpc context to escape.
Anna Zaks [Wed, 20 Jun 2012 23:35:57 +0000 (23:35 +0000)]
[analyzer] Malloc leak false positive: Allow xpc context to escape.

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

12 years agoobjective-c: place quotes around named items in a diagnostic.
Fariborz Jahanian [Wed, 20 Jun 2012 23:33:16 +0000 (23:33 +0000)]
objective-c: place quotes around named items in a diagnostic.
// rdar://11671080

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

12 years agoobjc: tweak my last patch to warn if class extension
Fariborz Jahanian [Wed, 20 Jun 2012 23:18:57 +0000 (23:18 +0000)]
objc: tweak my last patch to warn if class extension
has not overridden the property. // rdar://11656982

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

12 years agoobjective-c: Normally, a property cannot be both 'readonly' and having a
Fariborz Jahanian [Wed, 20 Jun 2012 22:57:42 +0000 (22:57 +0000)]
objective-c: Normally, a property cannot be both 'readonly' and having a
"write" attribute (copy/retain/etc.). But, property declaration in
primary class and protcols are tentative as they may be overridden
into a 'readwrite' property in class extensions. Postpone diagnosing
such warnings until the class implementation is seen.
// rdar://11656982

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

12 years agoDocumentation cleanup: escape a < character in a Doxygen comment
James Dennett [Wed, 20 Jun 2012 22:06:21 +0000 (22:06 +0000)]
Documentation cleanup: escape a < character in a Doxygen comment

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

12 years agoIntroduce ObjCRuntime::hasWeakClassImport() and use it in the appropriate
John McCall [Wed, 20 Jun 2012 21:58:02 +0000 (21:58 +0000)]
Introduce ObjCRuntime::hasWeakClassImport() and use it in the appropriate
places.  I've turned this off for the GNU runtimes --- I don't know if
they support weak class import, but it's easy enough for them to opt in.

Also tweak a comment per review by Jordan.

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

12 years agoDocumentation cleanup:
James Dennett [Wed, 20 Jun 2012 21:55:51 +0000 (21:55 +0000)]
Documentation cleanup:
* Escape < characters in Doxygen comments as needed;
* Add \code...\endcode around code examples;
* Remove an incorrect use of Doxygen's \arg command.

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

12 years agoAdded test with sizeof conditions (relies on to-be-implemented functionality of CFG...
Alexander Kornienko [Wed, 20 Jun 2012 21:12:23 +0000 (21:12 +0000)]
Added test with sizeof conditions (relies on to-be-implemented functionality of CFG, discussion: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120507/057370.html)

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

12 years agoReword -Winternal-linkage-in-inline, and rename it to -Wstatic-in-inline.
Jordan Rose [Wed, 20 Jun 2012 21:09:10 +0000 (21:09 +0000)]
Reword -Winternal-linkage-in-inline, and rename it to -Wstatic-in-inline.

Now that this is a C-only warning, we can use "static" instead of "internal
linkage", which is a term developers are probably more familiar with.
This makes for a better warning message. The warning name was changed to match,
since "internal linkage" is not mentioned in the warning text anymore.

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

12 years agoDocumentation cleanup:
James Dennett [Wed, 20 Jun 2012 21:03:59 +0000 (21:03 +0000)]
Documentation cleanup:
* Many fixes for \brief summaries (adding some, and making others shorter);
* Don't try to explicit tell Doxygen a namespace name (and particularly
  don't get it wrong);
* Typo fix: instantitions -> instantiations;
* Slightly more use of \pre for documenting preconditions.

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

12 years ago[analyzer] Do not walk the types for call graph construction.
Anna Zaks [Wed, 20 Jun 2012 20:57:49 +0000 (20:57 +0000)]
[analyzer] Do not walk the types for call graph construction.

Similar to r156661. This should be beneficial performance wise and
hopefully, resolve a RecursiveASTVisitor crash that we are seeing in the
wild, but are incapable of reproducing.

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

12 years ago[analyzer] Malloc: cleanup, disallow free on relinquished memory.
Anna Zaks [Wed, 20 Jun 2012 20:57:46 +0000 (20:57 +0000)]
[analyzer] Malloc: cleanup, disallow free on relinquished memory.

This commits sets the grounds for more aggressive use after free
checking. We will use the Relinquished sate to denote that someone
else is now responsible for releasing the memory.

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

12 years ago[analyzer] Remove dead code.
Anna Zaks [Wed, 20 Jun 2012 20:57:42 +0000 (20:57 +0000)]
[analyzer] Remove dead code.

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

12 years agoDocumentation cleanup: escaping # characters in Doxygen comments.
James Dennett [Wed, 20 Jun 2012 20:49:07 +0000 (20:49 +0000)]
Documentation cleanup: escaping # characters in Doxygen comments.

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

12 years agoRemove unused ASTContext& arg in RawCommentList::addComment, as pointed out by Chandl...
Dmitri Gribenko [Wed, 20 Jun 2012 20:39:04 +0000 (20:39 +0000)]
Remove unused ASTContext& arg in RawCommentList::addComment, as pointed out by Chandler in commit message for r158807.

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

12 years agoAllow unqualified lookup of non-dependent member functions
Nico Weber [Wed, 20 Jun 2012 20:21:42 +0000 (20:21 +0000)]
Allow unqualified lookup of non-dependent member functions
in microsoft mode. Fixes PR12701.

The code for this was already in 2 of the 3 branches of a
conditional and missing in the 3rd branch, so lift it above
the conditional.

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

12 years agoWhitespace.
Chad Rosier [Wed, 20 Jun 2012 18:51:04 +0000 (18:51 +0000)]
Whitespace.

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

12 years agoRemove -Winternal-linkage-in-inline in C++.
Jordan Rose [Wed, 20 Jun 2012 18:50:06 +0000 (18:50 +0000)]
Remove -Winternal-linkage-in-inline in C++.

It's very easy for anonymous external linkage to propagate in C++ through
return types and parameter types. Likewise, it's possible that a template
containing an inline function is only used with parameters that have internal
linkage. Actually diagnosing where the internal linkage comes from is fairly
difficult (both to locate and then to print nicely). Finally, since we only
have one translation unit available, we can't even prove that any of this
violates the ODR.

This warning needs better-defined behavior in C++ before it can really go in.

Rewording of the C warning (which /is/ specified by C99) coming shortly.

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

12 years ago[ms-style asm] Change the fatal error to an extension warning. Apparently, this
Chad Rosier [Wed, 20 Jun 2012 18:28:37 +0000 (18:28 +0000)]
[ms-style asm] Change the fatal error to an extension warning.  Apparently, this
error was asserting on anything that included Windows.h.  MS-style inline asm is
still dropped, but at least now we're not completely silent about it.

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

12 years agoDon't circumvent the debug info type cache when emitting info for EnumConstantDecl.
Benjamin Kramer [Wed, 20 Jun 2012 18:11:18 +0000 (18:11 +0000)]
Don't circumvent the debug info type cache when emitting info for EnumConstantDecl.

CreateEnumType doesn't participate in caching so the descriptor for the enum
gets recomputed for every reference of an element of an enum, only to get
discarded when it gets turned into an MDNode.

No functionality change except performance.

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

12 years agoWhitespace.
Chad Rosier [Wed, 20 Jun 2012 17:43:05 +0000 (17:43 +0000)]
Whitespace.

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

12 years agoobjc: improved diagnostic when property autosynthesis may cause
Fariborz Jahanian [Wed, 20 Jun 2012 17:18:31 +0000 (17:18 +0000)]
objc: improved diagnostic when property autosynthesis may cause
change in behavior. // rdar://11671080

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

12 years agoFix a thinko and a stray debugging hunk in my attributes patch. Thanks to Jordan
Sean Hunt [Wed, 20 Jun 2012 16:05:42 +0000 (16:05 +0000)]
Fix a thinko and a stray debugging hunk in my attributes patch. Thanks to Jordan
Rose and Richard Smith for catching these.

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

12 years agoFix a big layering violation introduced by r158771.
Chandler Carruth [Wed, 20 Jun 2012 09:53:52 +0000 (09:53 +0000)]
Fix a big layering violation introduced by r158771.

That commit added a new library just to hold the RawCommentList. I've
started a discussion on the commit thread about whether that is really
meritted -- it certainly doesn't seem necessary at this stage.

However, the immediate problem is that the AST library has a hard
dependency on the Comment library, but the dependencies were set up
completely backward. In addition to the layering violation, this had an
unfortunate effect if scattering the Comments library dependency
throughout the build system, but inconsistently so -- several parts of
the CMake dependencies were missing and only showed up due to transitive
deps or the fact that the target wasn't being built by tho bots.

It turns out that the Comments library can't (currently) be a well
formed layer *below* the AST library either, as it has an API that
accepts an ASTContext. That parameter is currently unused, so maybe that
was a mistake?

Anyways, it really seems like this is logically part of the AST --
that's the whole point of the ASTContext providing access to it as far
as I can tell -- so I've merged it into the AST library to solve the
immediate layering violation problems and remove some of the churn from
our library dependencies.

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

12 years agoRemove a 'static' specifier from an 'inline' function in a header file.
Chandler Carruth [Wed, 20 Jun 2012 08:43:50 +0000 (08:43 +0000)]
Remove a 'static' specifier from an 'inline' function in a header file.

This issue was caught by the new '-Winternal-linkage-in-inline' warning.

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

12 years agoRevert "Provide a -no-pedantic to cancel out -pedantic." This needs to be designed
Ted Kremenek [Wed, 20 Jun 2012 07:03:37 +0000 (07:03 +0000)]
Revert "Provide a -no-pedantic to cancel out -pedantic."  This needs to be designed
a bit further.  We may wish to just have -Wno flags to silence warnings, and not have a -no-pedantic.

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

12 years agoFix a warning on a fully covered switch with a default:
Chandler Carruth [Wed, 20 Jun 2012 06:47:54 +0000 (06:47 +0000)]
Fix a warning on a fully covered switch with a default:

../tools/clang/lib/Serialization/ASTReader.cpp:6316:9: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]

Also fix the indentation here to match the coding conventions.

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

12 years agoRestructure how the driver communicates information about the
John McCall [Wed, 20 Jun 2012 06:18:46 +0000 (06:18 +0000)]
Restructure how the driver communicates information about the
target Objective-C runtime down to the frontend:  break this
down into a single target runtime kind and version, and compute
all the relevant information from that.  This makes it
relatively painless to add support for new runtimes to the
compiler.  Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z,
available at the driver level as a better and more general
alternative to -fgnu-runtime and -fnext-runtime.  This new
concept of an Objective-C runtime also encompasses what we
were previously separating out as the "Objective-C ABI", so
fragile vs. non-fragile runtimes are now really modelled as
different kinds of runtime, paving the way for better overall
differentiation.

As a sort of special case, continue to accept the -cc1 flag
-fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak.

I won't go so far as to say "no functionality change", even
ignoring the new driver flag, but subtle changes in driver
semantics are almost certainly not intended.

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

12 years ago[analyzer] Move failing 'new' test cases back into new.cpp instead of XFAILing.
Jordan Rose [Wed, 20 Jun 2012 05:34:32 +0000 (05:34 +0000)]
[analyzer] Move failing 'new' test cases back into new.cpp instead of XFAILing.

Per Anna's comment, this is a better way to handle "to-do list"-type failures.
This way we'll know if any of the features get fixed; in an XFAIL file, /all/
the cases have to be fixed before lit would tell us anything.

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

12 years ago[arcmt]
Argyrios Kyrtzidis [Wed, 20 Jun 2012 01:46:26 +0000 (01:46 +0000)]
[arcmt]
-Disable -pedantic-errors when migrating per Jordan's suggestion.
-Use llvm_move() per John's suggestion.

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

12 years ago[analyzer] Invalidate placement args; return the pointer given to placement new
Jordan Rose [Wed, 20 Jun 2012 01:32:01 +0000 (01:32 +0000)]
[analyzer] Invalidate placement args; return the pointer given to placement new

The default global placement new just returns the pointer it is given.
Note that other custom 'new' implementations with placement args are not
guaranteed to do this.

In addition, we need to invalidate placement args, since they may be updated by
the allocator function. (Also, right now we don't properly handle the
constructor inside a CXXNewExpr, so we need to invalidate the placement args
just so that callers know something changed!)

This invalidation is not perfect because CallOrObjCMessage doesn't support
CXXNewExpr, and all of our invalidation callbacks expect that if there's no
CallOrObjCMessage, the invalidation is happening manually (e.g. by a direct
assignment) and shouldn't affect checker-specific metadata (like malloc state);
hence the malloc test case in new-fail.cpp. But region values are now
properly invalidated, at least.

The long-term solution to this problem is to rework CallOrObjCMessage into
something more general, rather than the morass of branches it is today.

<rdar://problem/11679031>

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

12 years ago[objcmt] Have the modern objc migration warning change from:
Argyrios Kyrtzidis [Wed, 20 Jun 2012 01:28:32 +0000 (01:28 +0000)]
[objcmt] Have the modern objc migration warning change from:

[NSNumber numberWithDouble:cppb];
warning: converting to boxing syntax requires a cast

to something like:

[NSNumber numberWithDouble:cppb];
warning: converting to boxing syntax requires casting 'bool' to 'double'

This is way better to fully understand the warning.
rdar://11705106

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

12 years agoFix cmake build.
Rafael Espindola [Wed, 20 Jun 2012 01:18:08 +0000 (01:18 +0000)]
Fix cmake build.

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

12 years ago[arcmt] When migrating to ARC disable -Werror so as to only block migration
Argyrios Kyrtzidis [Wed, 20 Jun 2012 01:10:40 +0000 (01:10 +0000)]
[arcmt] When migrating to ARC disable -Werror so as to only block migration
for "hard" ARC errors, not warnings.

rdar://11691437

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

12 years agoUnbreak GCC build: GCC doesn't like clang::Parser::CommentHandler and class clang...
Dmitri Gribenko [Wed, 20 Jun 2012 01:06:08 +0000 (01:06 +0000)]
Unbreak GCC build: GCC doesn't like clang::Parser::CommentHandler and class clang::CommentHandler to have same name.

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

12 years agoDocumentation cleanup: adding/fixing Doxygen markup, particularly \brief,
James Dennett [Wed, 20 Jun 2012 01:00:18 +0000 (01:00 +0000)]
Documentation cleanup: adding/fixing Doxygen markup, particularly \brief,
\code...\endcode, \file commands and escaing for angle brackets.

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

12 years agoDocumentation cleanup: escape "::" to avoid a Doxygen warning
James Dennett [Wed, 20 Jun 2012 00:57:15 +0000 (00:57 +0000)]
Documentation cleanup: escape "::" to avoid a Doxygen warning

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

12 years agoUnbreak CMake build: remove not-yet-committed CommentLexer.cpp.
Dmitri Gribenko [Wed, 20 Jun 2012 00:56:47 +0000 (00:56 +0000)]
Unbreak CMake build: remove not-yet-committed CommentLexer.cpp.

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

12 years agoDocumentation cleanup:
James Dennett [Wed, 20 Jun 2012 00:56:32 +0000 (00:56 +0000)]
Documentation cleanup:
* Escaped # and < characters in Doxygen comments as needed;
* Removed a Doxygen comment in HeaderSearch.cpp that was redundant with
  the corresponding comment in the header file.

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

12 years agoDocumentation cleanup: escape # character in a Doxygen comment.
James Dennett [Wed, 20 Jun 2012 00:51:53 +0000 (00:51 +0000)]
Documentation cleanup: escape # character in a Doxygen comment.

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

12 years agoDocumentation cleanup:
James Dennett [Wed, 20 Jun 2012 00:50:53 +0000 (00:50 +0000)]
Documentation cleanup:
* Escape < characters in Doxygen comments as needed;
* Demote one Doxygen comment to a regular comment to fix a Doxygen warning.

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

12 years agoDocumentation cleanup:
James Dennett [Wed, 20 Jun 2012 00:48:54 +0000 (00:48 +0000)]
Documentation cleanup:
* Escaped # characters in Doxygen comments as needed;
* Added/fixed \file and \brief markup to add summaries to Doxygen output.

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

12 years agoAdd the PCH file name to the message about not being able to read the PCH.
Kaelyn Uhrain [Wed, 20 Jun 2012 00:36:03 +0000 (00:36 +0000)]
Add the PCH file name to the message about not being able to read the PCH.

Also add a couple of unit tests to check the invalid-PCH error messages
to satisfy PR4568 and for the assertion (introduced in r149918 and fixed
in r158769) that would cause clang to crash when given an empty PCH.

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

12 years agoStructured comment parsing, first step.
Dmitri Gribenko [Wed, 20 Jun 2012 00:34:58 +0000 (00:34 +0000)]
Structured comment parsing, first step.

* Retain comments in the AST
* Serialize/deserialize comments
* Find comments attached to a certain Decl
* Expose raw comment text and SourceRange via libclang

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

12 years agoDo a second lookup for type_info in the global namespace in microsoft mode. PR13153.
Nico Weber [Tue, 19 Jun 2012 23:58:27 +0000 (23:58 +0000)]
Do a second lookup for type_info in the global namespace in microsoft mode. PR13153.

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

12 years agoReapply r158700 and fixup patches, minus one hunk that slipped through and
Sean Hunt [Tue, 19 Jun 2012 23:57:03 +0000 (23:57 +0000)]
Reapply r158700 and fixup patches, minus one hunk that slipped through and
caused a crash in an obscure case. On the plus side, it caused me to catch
another bug by inspection.

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

12 years agoDo not crash when we dynamic cast a final type to void*.
Sean Hunt [Tue, 19 Jun 2012 23:44:55 +0000 (23:44 +0000)]
Do not crash when we dynamic cast a final type to void*.

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

12 years agoThread Safety Analysis: Move some warnings on thread safety
DeLesley Hutchins [Tue, 19 Jun 2012 23:25:19 +0000 (23:25 +0000)]
Thread Safety Analysis:  Move some warnings on thread safety
attributes into the ThreadSafetyAttributes group, where the other
warnings currently live.

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

12 years agoExtend the support for cl-std to include 1.2.
Tanya Lattner [Tue, 19 Jun 2012 23:09:52 +0000 (23:09 +0000)]
Extend the support for cl-std to include 1.2.
Add error checking for the static qualifier which is now allowed in certain situations for OpenCL 1.2. Use the CL version to turn on this feature.
Added test case for 1.2 static storage class feature.

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

12 years agoobjective-c: warn when autosynthesizing a property which has same
Fariborz Jahanian [Tue, 19 Jun 2012 22:51:22 +0000 (22:51 +0000)]
objective-c: warn when autosynthesizing a property which has same
name as an existing ivar since this is common source of error
when people remove @synthesize to take advantage of autosynthesis.
// rdar://11671080

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

12 years agoReapplying the changes from r158717 as they were rolled back to avoid merge conflicts...
Aaron Ballman [Tue, 19 Jun 2012 22:09:27 +0000 (22:09 +0000)]
Reapplying the changes from r158717 as they were rolled back to avoid merge conflicts from a separate problematic patch.

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

12 years agoRevert r158700 and dependent patches r158716, r158717, and r158731.
Jakob Stoklund Olesen [Tue, 19 Jun 2012 21:48:43 +0000 (21:48 +0000)]
Revert r158700 and dependent patches r158716, r158717, and r158731.

The original r158700 caused crashes in the gcc test suite,
g++.abi/vtable3a.C among others. It also caused failures in the libc++
test suite.

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

12 years agoFix -Wc++11-narrowing warnings for narrowing negative values to larger unsigned
Richard Smith [Tue, 19 Jun 2012 21:28:35 +0000 (21:28 +0000)]
Fix -Wc++11-narrowing warnings for narrowing negative values to larger unsigned
types to actually includes the value, rather than saying <uninitialized>.

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

12 years agoEnable -Wnull-conversion for non-integral target types (eg: double).
David Blaikie [Tue, 19 Jun 2012 21:19:06 +0000 (21:19 +0000)]
Enable -Wnull-conversion for non-integral target types (eg: double).

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

12 years agoDocumentation cleanup: escape "::", and other minor reformatting
James Dennett [Tue, 19 Jun 2012 21:05:49 +0000 (21:05 +0000)]
Documentation cleanup: escape "::", and other minor reformatting

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

12 years agoDocumentation cleanup: add \verbatim markup for grammar productions
James Dennett [Tue, 19 Jun 2012 21:04:25 +0000 (21:04 +0000)]
Documentation cleanup: add \verbatim markup for grammar productions

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

12 years agoDocumentation cleanup: fixing file headers to use Doxygen \file markup while
James Dennett [Tue, 19 Jun 2012 21:02:26 +0000 (21:02 +0000)]
Documentation cleanup: fixing file headers to use Doxygen \file markup while
also being sufficiently conformant to LLVM's coding standards.

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

12 years agoobjc-arc: captured block variable accessed in its block literal
Fariborz Jahanian [Tue, 19 Jun 2012 20:53:26 +0000 (20:53 +0000)]
objc-arc: captured block variable accessed in its block literal
initializer need be null initialized before initializer takes
hold, just like any other initialized retainable object pointer.
// rdar://11016025

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

12 years agoAdjust scan-build to enable color output for xterm-256color.
Ted Kremenek [Tue, 19 Jun 2012 19:27:28 +0000 (19:27 +0000)]
Adjust scan-build to enable color output for xterm-256color.

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

12 years ago[driver] Per Bob's suggestion, emphasize the file dumps.
Chad Rosier [Tue, 19 Jun 2012 18:39:21 +0000 (18:39 +0000)]
[driver] Per Bob's suggestion, emphasize the file dumps.
rdar://11684107

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

12 years agoRemove some debugging code that snuck into r158691.
Kaelyn Uhrain [Tue, 19 Jun 2012 18:38:00 +0000 (18:38 +0000)]
Remove some debugging code that snuck into r158691.

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

12 years agoRevert predefined decl tracking.
Meador Inge [Tue, 19 Jun 2012 18:17:30 +0000 (18:17 +0000)]
Revert predefined decl tracking.

r158085 added some logic to track predefined declarations.  The main reason we
had predefined declarations in the input was because the __builtin_va_list
declarations were injected into the preprocessor input.  As of r158592 we
explicitly build the __builtin_va_list declarations.  Therefore the predefined
decl tracking is no longer needed.

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

12 years agoRemove redundant uses of SmallString
Sean Hunt [Tue, 19 Jun 2012 18:12:18 +0000 (18:12 +0000)]
Remove redundant uses of SmallString

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

12 years ago[driver] Print the compiler version before the diagnostic messages.
Chad Rosier [Tue, 19 Jun 2012 17:51:34 +0000 (17:51 +0000)]
[driver] Print the compiler version before the diagnostic messages.

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

12 years ago[driver] Make the crash diagnostic message more visable. Bug reports are being
Chad Rosier [Tue, 19 Jun 2012 17:48:02 +0000 (17:48 +0000)]
[driver] Make the crash diagnostic message more visable.  Bug reports are being
filed, but still missing the preprocessed source and associated run script.
rdar://11684107

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

12 years agoImproves parsing and semantic analysis for MS __declspec attributes. This includes...
Aaron Ballman [Tue, 19 Jun 2012 13:49:26 +0000 (13:49 +0000)]
Improves parsing and semantic analysis for MS __declspec attributes.  This includes support for the align (which fixes PR12631).

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

12 years agoStop abusing StringRef. Fixes the Windows build.
Sean Hunt [Tue, 19 Jun 2012 13:36:02 +0000 (13:36 +0000)]
Stop abusing StringRef. Fixes the Windows build.

I've also removed the duplicate check for PARSED_ATTR since it seems
unnecessary, and would have made the code more complicated.

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

12 years ago[analyzer] Allow pointers to escape into NSPointerArray.
Anna Zaks [Tue, 19 Jun 2012 05:10:32 +0000 (05:10 +0000)]
[analyzer] Allow pointers to escape into NSPointerArray.
(Fixes radar://11691035 PR13140)

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

12 years agoImprove the specification of spellings in Attr.td.
Sean Hunt [Tue, 19 Jun 2012 03:39:03 +0000 (03:39 +0000)]
Improve the specification of spellings in Attr.td.

Note that this is mostly a structural patch that handles the change from the old
spelling style to the new one. One consequence of this is that all AT_foo_bar
enum values have changed to not be based off of the first spelling, but rather
off of the class name, so they are now AT_FooBar and the like (a straw poll on
IRC showed support for this). Apologies for code churn.

Most attributes have GNU spellings as a temporary solution until everything else
is sorted out (such as a Keyword spelling, which I intend to add if someone else
doesn't beat me to it). This is definitely a WIP.

I've also killed BaseCheckAttr since it was unused, and I had to go through
every attribute anyway.

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

12 years agoFix the location of the fixit for -Wnewline-eof.
Jordan Rose [Tue, 19 Jun 2012 03:09:38 +0000 (03:09 +0000)]
Fix the location of the fixit for -Wnewline-eof.

It turns out SourceManager treating the "one-past-the-end" location as invalid,
but then failing to set the invalid flag properly.

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

12 years ago[objcmt] When checking whether the subscripting methods are declared use
Argyrios Kyrtzidis [Tue, 19 Jun 2012 02:22:02 +0000 (02:22 +0000)]
[objcmt] When checking whether the subscripting methods are declared use
ObjCInterfaceDec::lookupInstanceMethod to make sure we check categories as well
and update related tests.

rdar://11695288

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

12 years agoAdd a -fuse-init-array option to cc1 and map to the UseInitArray target
Rafael Espindola [Tue, 19 Jun 2012 01:26:10 +0000 (01:26 +0000)]
Add a -fuse-init-array option to cc1 and map to the UseInitArray target
option. On the driver, check if we are using libraries from gcc 4.7 or newer
and if so pass -fuse-init-array to the frontend.
The crtbegin*.o files in gcc 4.7 no longer call the constructors listed in
.ctors, so we have to use .init_array.

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

12 years agoImprove the error message when a function overload candidate is rejected
Kaelyn Uhrain [Tue, 19 Jun 2012 00:37:47 +0000 (00:37 +0000)]
Improve the error message when a function overload candidate is rejected
because it expects a reference and receives a non-l-value.

For example, given:

  int foo(int &);
  template<int x> void b() { foo(x); }

clang will now print "expects an l-value for 1st argument" instead of
"no known conversion from 'int' to 'int &' for 1st argument". The change
in wording (and associated code to detect the case) was prompted by
comment #5 in PR3104, and should be the last bit of work needed for the
bug.

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

12 years agoSink definition of IBOutlet, IBOutletCollection, and IBAction into
Ted Kremenek [Tue, 19 Jun 2012 00:37:39 +0000 (00:37 +0000)]
Sink definition of IBOutlet, IBOutletCollection, and IBAction into
the compiler predefines buffer.  These are essentially part of
the Objective-C language.

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

12 years agoChange -Winternal-linkage-in-inline from ExtWarn to Warning in C++.
Jordan Rose [Mon, 18 Jun 2012 23:58:49 +0000 (23:58 +0000)]
Change -Winternal-linkage-in-inline from ExtWarn to Warning in C++.

Per post-commit review, it's not appropriate to use ExtWarn in C++, because
we can't prove that the inline function will actually be defined in more than
one place (and thus we can't prove that this violates the ODR).

This removes the warning entirely from uses in the main source file in C++.

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

12 years agoXFAIL linker-opts.c on win32 now that it doesn't pretend that link.exe is ld.
Michael J. Spencer [Mon, 18 Jun 2012 23:00:44 +0000 (23:00 +0000)]
XFAIL linker-opts.c on win32 now that it doesn't pretend that link.exe is ld.

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

12 years agoAdd language std for OpenCL 1.1 and 1.2.
Tanya Lattner [Mon, 18 Jun 2012 22:55:02 +0000 (22:55 +0000)]
Add language std for OpenCL 1.1 and 1.2.

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

12 years agoSupport -Winternal-linkage-in-inline in C++ code.
Jordan Rose [Mon, 18 Jun 2012 22:09:19 +0000 (22:09 +0000)]
Support -Winternal-linkage-in-inline in C++ code.

This includes treating anonymous namespaces like internal linkage, and allowing
const variables to be used even if internal. The whole thing's been broken out
into a separate function to avoid nested ifs.

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

12 years agoAdd new tool 'diag-build' for showing enabled warnings in a project.
Jordan Rose [Mon, 18 Jun 2012 21:31:37 +0000 (21:31 +0000)]
Add new tool 'diag-build' for showing enabled warnings in a project.

diag-build acts as a wrapper for 'diagtool show-enabled', in the same way
that scan-build acts as a wrapper for the static analyzer. The common case is
simple: use 'diag-build make' or 'diag-build xcodebuild' to list the warnings
enabled for the first compilation command we see. Other build systems require
you to manually specify "dry-run" and "use $CC and $CXX"; if there is a build
system you are interested in, please add it to the switch statement.

diag-build is fairly stupid right now, but it serves its basic purpose.
Hopefully it can grow to meet any additional requirements.

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

12 years ago[analyzer] Add a comment: why we treat array compound literals as lvalues.
Jordan Rose [Mon, 18 Jun 2012 21:31:27 +0000 (21:31 +0000)]
[analyzer] Add a comment: why we treat array compound literals as lvalues.

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

12 years agoMove a few static functions from DiagnosticRenderer.cpp into SourceManager.
Matt Beaumont-Gay [Mon, 18 Jun 2012 20:12:05 +0000 (20:12 +0000)]
Move a few static functions from DiagnosticRenderer.cpp into SourceManager.

This simplifies the code a little bit, since these functions all took a
SourceManager parameter and called a bunch of methods on it, and makes
the functions available to other users.

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