]> granicus.if.org Git - clang/log
clang
12 years agoPR13360: When deciding the earliest point which inevitably leads to an
Richard Smith [Fri, 13 Jul 2012 23:33:44 +0000 (23:33 +0000)]
PR13360: When deciding the earliest point which inevitably leads to an
uninitialized variable use, walk back over branches where we've reached all the
non-null successors, not just cases where we've reached all successors.

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

12 years agoMove option test earlier in the function.
Rafael Espindola [Fri, 13 Jul 2012 23:26:43 +0000 (23:26 +0000)]
Move option test earlier in the function.

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

12 years agoThis is one of the first steps at moving to replace target-dependent
Joel Jones [Fri, 13 Jul 2012 23:26:27 +0000 (23:26 +0000)]
This is one of the first steps at moving to replace target-dependent
intrinsics with target-indepdent intrinsics.  The first instruction(s) to be
handled are the vector versions of count leading zeros (ctlz).

The changes here are to clang so that it generates a target independent
vector ctlz when it sees an ARM dependent vector ctlz.  The changes in llvm
are to match the target independent vector ctlz and in VMCore/AutoUpgrade.cpp
to update any existing bc files containing ARM dependent vector ctlzs with
target-independent ctlzs.  There are also changes to an existing test case in
llvm for ARM vector count instructions and a new test for the bitcode upgrade.

<rdar://problem/11831778>

There is deliberately no test for the change to clang, as so far as I know, no
consensus has been reached regarding how to test neon instructions in clang;
q.v. <rdar://problem/8762292>

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

12 years agoComment.h: reword comments
Dmitri Gribenko [Fri, 13 Jul 2012 22:36:49 +0000 (22:36 +0000)]
Comment.h: reword comments

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

12 years agoModify tree printing mode for template type diffing. If a diagnostic has
Richard Trieu [Fri, 13 Jul 2012 21:18:32 +0000 (21:18 +0000)]
Modify tree printing mode for template type diffing.  If a diagnostic has
multiple %diff's, only print the first tree and fallback to inline printing
for the rest of the diagnostic.

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

12 years agoadd support for conditional expressions in Expr::HasSideEffects()
Nuno Lopes [Fri, 13 Jul 2012 20:48:52 +0000 (20:48 +0000)]
add support for conditional expressions in Expr::HasSideEffects()
This fixes a bug in __builtin_object_size() codegen

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

12 years agoMove a bunch of the attribute warnings under the IgnoreAttributes group. Cleaned...
Tanya Lattner [Fri, 13 Jul 2012 20:45:35 +0000 (20:45 +0000)]
Move a bunch of the attribute warnings under the IgnoreAttributes group. Cleaned up test case.

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

12 years agoComment AST nodes: rename getXXXCount() methods to getNumXXXs() to be in line with...
Dmitri Gribenko [Fri, 13 Jul 2012 19:02:42 +0000 (19:02 +0000)]
Comment AST nodes: rename getXXXCount() methods to getNumXXXs() to be in line with Statement AST nodes.

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

12 years agoApply visibility pragmas to class template declarations. This is needed because
Rafael Espindola [Fri, 13 Jul 2012 18:04:45 +0000 (18:04 +0000)]
Apply visibility pragmas to class template declarations. This is needed because
we might use the declaration to build a type before seeing the definition.

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

12 years agoUse -fvisibility-inlines-hidden in inline functions too. This matches gcc
Rafael Espindola [Fri, 13 Jul 2012 14:25:36 +0000 (14:25 +0000)]
Use -fvisibility-inlines-hidden in inline functions too. This matches gcc
behavior since gcc pr30066. Thanks to Benjamin Kramer for pointing it out.

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

12 years agoMove helper class into an anonymous namespace.
Benjamin Kramer [Fri, 13 Jul 2012 13:25:11 +0000 (13:25 +0000)]
Move helper class into an anonymous namespace.

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

12 years agoMention -ftls-model in release notes and manual.
Hans Wennborg [Fri, 13 Jul 2012 12:47:15 +0000 (12:47 +0000)]
Mention -ftls-model in release notes and manual.

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

12 years agoAllows retrieving all files in a CompilationDatabase.
Manuel Klimek [Fri, 13 Jul 2012 12:31:45 +0000 (12:31 +0000)]
Allows retrieving all files in a CompilationDatabase.

Patch by Tobias Koenig, some test changes by myself.

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

12 years agoProvide a special-case diagnostic when two class member functions instantiate
Richard Smith [Fri, 13 Jul 2012 04:12:04 +0000 (04:12 +0000)]
Provide a special-case diagnostic when two class member functions instantiate
to the same signature. Fix a bug in the type printer which would cause this
diagnostic to print wonderful types like 'const const int *'.

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

12 years agoFix a bug in my previous commit. The problem is not that we were not using the
Rafael Espindola [Fri, 13 Jul 2012 01:19:08 +0000 (01:19 +0000)]
Fix a bug in my previous commit. The problem is not that we were not using the
canonical decl for the template, but that we were not merging attributes for
templates at all!

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

12 years agoAttaching comments to declarations during parsing: handle more Objective-C declarations.
Dmitri Gribenko [Fri, 13 Jul 2012 01:06:46 +0000 (01:06 +0000)]
Attaching comments to declarations during parsing: handle more Objective-C declarations.

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

12 years agoAlso remove include directory for libComments.
Dmitri Gribenko [Fri, 13 Jul 2012 00:56:30 +0000 (00:56 +0000)]
Also remove include directory for libComments.

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

12 years agoRemove empty lib/Comments directory.
Dmitri Gribenko [Fri, 13 Jul 2012 00:55:39 +0000 (00:55 +0000)]
Remove empty lib/Comments directory.

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

12 years agoComment parsing: repaint the bikesched: rename 'HTML open tags' to 'HTML start tags...
Dmitri Gribenko [Fri, 13 Jul 2012 00:44:24 +0000 (00:44 +0000)]
Comment parsing: repaint the bikesched: rename 'HTML open tags' to 'HTML start tags' and 'HTML close tags' to 'HTML end tags' according to HTML spec.

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

12 years agoMake concepts of optional and forbidden end tags separate. Thanks Jordan for pointin...
Dmitri Gribenko [Thu, 12 Jul 2012 23:37:09 +0000 (23:37 +0000)]
Make concepts of optional and forbidden end tags separate.  Thanks Jordan for pointing this!

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

12 years agoUse the canonical template decl when trying to find if it has a visibility
Rafael Espindola [Thu, 12 Jul 2012 20:05:04 +0000 (20:05 +0000)]
Use the canonical template decl when trying to find if it has a visibility
attribute.

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

12 years agoUpdates the example to the latest incarnation of clang-check and
Manuel Klimek [Thu, 12 Jul 2012 18:32:50 +0000 (18:32 +0000)]
Updates the example to the latest incarnation of clang-check and
adds a paragraph on builtin headers.

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

12 years agoAlways initialize variable. If opening quote is the last character in comment, we...
Dmitri Gribenko [Thu, 12 Jul 2012 16:34:32 +0000 (16:34 +0000)]
Always initialize variable.  If opening quote is the last character in comment, we will be using an uninitialized value.  There is already a test for that in unittests/AST/CommentLexer.cpp, but it seems like we were lucky with the value that got loaded into the variable so the test passed.

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

12 years agoUpdated -help message in clang-check.
Alexander Kornienko [Thu, 12 Jul 2012 14:34:23 +0000 (14:34 +0000)]
Updated -help message in clang-check.

Summary: Provide more information on usage in -help

Test Plan: ran once

Reviewers: klimek, chandlerc, djasper

Reviewed By: klimek

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D5

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

12 years ago[Windows] Split the back reference tests into two separate files as the templates...
Timur Iskhodzhanov [Thu, 12 Jul 2012 14:33:58 +0000 (14:33 +0000)]
[Windows] Split the back reference tests into two separate files as the templates are getting hairy

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

12 years agotest/CodeGen/rdrand-builtins.c: Define __MM_MALLOC_H before including <*mmintrin...
NAKAMURA Takumi [Thu, 12 Jul 2012 10:36:27 +0000 (10:36 +0000)]
test/CodeGen/rdrand-builtins.c: Define __MM_MALLOC_H before including <*mmintrin.h> .

Rawr!

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

12 years agoDon't include mm_malloc.h in test, it pulls in system headers on msvc.
Benjamin Kramer [Thu, 12 Jul 2012 09:56:18 +0000 (09:56 +0000)]
Don't include mm_malloc.h in test, it pulls in system headers on msvc.

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

12 years ago[Windows] Use thiscall as the default calling convention for class methods. PR12785
Timur Iskhodzhanov [Thu, 12 Jul 2012 09:50:54 +0000 (09:50 +0000)]
[Windows] Use thiscall as the default calling convention for class methods. PR12785

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

12 years agoAdd _rdrand{16,32,64}_step intrinsics to immintrin.h
Benjamin Kramer [Thu, 12 Jul 2012 09:33:03 +0000 (09:33 +0000)]
Add _rdrand{16,32,64}_step intrinsics to immintrin.h

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

12 years agoThis commit combines three patches to the ASTMatchers.
Daniel Jasper [Thu, 12 Jul 2012 08:50:38 +0000 (08:50 +0000)]
This commit combines three patches to the ASTMatchers.

One adds matchers for the various parts of a for loop (initializer, condition,
increment), as well as extending the hasBody matcher to work for while and
do-while loops. The second patch adds an isInteger matcher for types.
The third patch fixes a bug in allOf, where a few of the name chages
(AllOf --> allOf) had been missed.

All matchers come with unit tests.

Patches by Sam Panzer!

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

12 years agoBe lax about trailing whitespace when checking fixit formatting, this depends on...
Benjamin Kramer [Thu, 12 Jul 2012 08:34:31 +0000 (08:34 +0000)]
Be lax about trailing whitespace when checking fixit formatting, this depends on locale settings.

If a non-unicode locale is used, the unicode character is escaped and any
byte that is in the escaped representation but not the semicolon will
become whitespace.

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

12 years agoPR13312: Don't crash when printing a fixit that ends in a unicode character.
Benjamin Kramer [Thu, 12 Jul 2012 08:20:49 +0000 (08:20 +0000)]
PR13312: Don't crash when printing a fixit that ends in a unicode character.

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

12 years ago[clang.py] Implement Token API
Gregory Szorc [Thu, 12 Jul 2012 07:21:12 +0000 (07:21 +0000)]
[clang.py] Implement Token API

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

12 years ago[clang.py] Add TranslationUnit.get_{file,source_location,source_range}
Gregory Szorc [Thu, 12 Jul 2012 05:05:56 +0000 (05:05 +0000)]
[clang.py] Add TranslationUnit.get_{file,source_location,source_range}

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

12 years ago[clang.py] Refactor how ctypes functions are registered
Gregory Szorc [Thu, 12 Jul 2012 04:56:46 +0000 (04:56 +0000)]
[clang.py] Refactor how ctypes functions are registered

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

12 years agoProcess #pragma visibility early in the parsing of class definitions. Fixes
Rafael Espindola [Thu, 12 Jul 2012 04:47:34 +0000 (04:47 +0000)]
Process #pragma visibility early in the parsing of class definitions. Fixes
pr13338.

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

12 years agoIgnore visibility attributes after definitions. This matches newer (4.7) gcc's
Rafael Espindola [Thu, 12 Jul 2012 04:32:30 +0000 (04:32 +0000)]
Ignore visibility attributes after definitions. This matches newer (4.7) gcc's
behavior and is the first step in fixing pr13338.

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

12 years agoRevert r160052, "Default to -std=c++11 on Windows.", for now.
NAKAMURA Takumi [Thu, 12 Jul 2012 03:14:56 +0000 (03:14 +0000)]
Revert r160052, "Default to -std=c++11 on Windows.", for now.

Failing Tests (3):
    Clang :: Index/complete-cxx-inline-methods.cpp
    Clang :: Index/recursive-cxx-member-calls.cpp
    Clang :: SemaTemplate/inject-templated-friend-post.cpp

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

12 years agoAdd the ObjFW runtime. Patch by Jonathan Schleifer!
John McCall [Thu, 12 Jul 2012 02:07:58 +0000 (02:07 +0000)]
Add the ObjFW runtime.  Patch by Jonathan Schleifer!

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

12 years agoAST/CommentSema.cpp: Fix signess in abs() to appease msvc. It would not make sense...
NAKAMURA Takumi [Thu, 12 Jul 2012 00:45:08 +0000 (00:45 +0000)]
AST/CommentSema.cpp: Fix signess in abs() to appease msvc. It would not make sense to pass (unsigned)-(unsigned) to abs().

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

12 years agoclang/lib/Basic/CMakeLists.txt: Add missing dependency, ClangDiagnosticComment.
NAKAMURA Takumi [Thu, 12 Jul 2012 00:27:55 +0000 (00:27 +0000)]
clang/lib/Basic/CMakeLists.txt: Add missing dependency, ClangDiagnosticComment.

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

12 years ago[analyzer] Don't inline virtual calls unless we can devirtualize properly.
Jordan Rose [Thu, 12 Jul 2012 00:16:25 +0000 (00:16 +0000)]
[analyzer] Don't inline virtual calls unless we can devirtualize properly.

Previously we were using the static type of the base object to inline
methods, whether virtual or non-virtual. Now, we try to see if the base
object has a known type, and if so ask for its implementation of the method.

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

12 years agoAdd OpenCL metadata for kernel arg names. This output is controlled via a flag as...
Tanya Lattner [Wed, 11 Jul 2012 23:02:10 +0000 (23:02 +0000)]
Add OpenCL metadata for kernel arg names. This output is controlled via a flag as noted in the OpenCL Spec.
Includes a test case.

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

12 years agoDon't try to do RVO on block variables that refer to an enclosing local.
Nico Weber [Wed, 11 Jul 2012 22:50:15 +0000 (22:50 +0000)]
Don't try to do RVO on block variables that refer to an enclosing local.

Fixes PR13314, clang crashing on blocks refering to an enclosing local
when the enclosing function returns void.

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

12 years agoStop instantiating a class if we hit a static_assert failure. Also, if the
Richard Smith [Wed, 11 Jul 2012 22:37:56 +0000 (22:37 +0000)]
Stop instantiating a class if we hit a static_assert failure. Also, if the
static_assert fails when parsing the template, don't diagnose it again on every
instantiation.

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

12 years agoFix warning.
Richard Smith [Wed, 11 Jul 2012 22:33:59 +0000 (22:33 +0000)]
Fix warning.

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

12 years agoEnable comment parsing and semantic analysis to emit diagnostics. A few
Dmitri Gribenko [Wed, 11 Jul 2012 21:38:39 +0000 (21:38 +0000)]
Enable comment parsing and semantic analysis to emit diagnostics.  A few
diagnostics implemented -- see testcases.

I created a new TableGen file for comment diagnostics,
DiagnosticCommentKinds.td, because comment diagnostics don't logically
fit into AST diagnostics file.  But I don't feel strongly about it.

This also implements support for self-closing HTML tags in comment
lexer and parser (for example, <br />).

In order to issue precise diagnostics CommentSema needs to know the
declaration the comment is attached to.  There is no easy way to find a decl by
comment, so we match comments and decls in lockstep: after parsing one
declgroup we check if we have any new, not yet attached comments.  If we do --
then we do the usual comment-finding process.

It is interesting that this automatically handles trailing comments.
We pick up not only comments that precede the declaration, but also
comments that *follow* the declaration -- thanks to the lookahead in
the lexer: after parsing the declgroup we've consumed the semicolon
and looked ahead through comments.

Added -Wdocumentation-html flag for semantic HTML errors to allow the user to
disable only HTML warnings (but not HTML parse errors, which we emit as
warnings in -Wdocumentation).

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

12 years agoIntroduce a flag in SourceManager to treat non-system source files
Argyrios Kyrtzidis [Wed, 11 Jul 2012 20:59:04 +0000 (20:59 +0000)]
Introduce a flag in SourceManager to treat non-system source files
as "volatile", meaning there's a high enough chance that they may
change while we are trying to use them.

This flag is only enabled by libclang.
Currently "volatile" source files will be stat'ed immediately
before opening them, because the file size stat info
may not be accurate since when we got it (e.g. from the PCH).
This avoids crashes when trying to reference mmap'ed memory
from a file whose size is not what we expect.

Note that there's still a window for a racing issue to occur
but the window for it should be way smaller than before.
We can consider later on to avoid mmap completely on such files.

rdar://11612916

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

12 years agoStart testing some commented-out cases of badly-formed __has_include.
Jordan Rose [Wed, 11 Jul 2012 20:12:19 +0000 (20:12 +0000)]
Start testing some commented-out cases of badly-formed __has_include.

Filed PR13334 for the cases that cause the compiler to crash, and
PR13335 for the cases where we should be recovering more gracefully.

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

12 years agoAllow -verify directives to be filtered by preprocessing.
Jordan Rose [Wed, 11 Jul 2012 19:58:23 +0000 (19:58 +0000)]
Allow -verify directives to be filtered by preprocessing.

This is accomplished by making VerifyDiagnosticsConsumer a CommentHandler,
which then only reads the -verify directives that are actually in live
blocks of code. It also makes it simpler to handle -verify directives that
appear in header files, though we still have to manually reparse some files
depending on how they are generated.

This requires some test changes. In particular, all PCH tests now have their
-verify directives outside the "header" portion of the file, using the @line
syntax added in r159978. Other tests have been modified mostly to make it
clear what is being tested, and to prevent polluting the expected output with
the directives themselves.

Patch by Andy Gibbs! (with slight modifications)

The new Frontend/verify-* tests exercise the functionality of this commit,
as well as r159978, r159979, and r160053 (Andy's other -verify enhancements).

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

12 years agoMove CompileAssert into namespace clang::ast_matchers:: to avoid naming
Daniel Jasper [Wed, 11 Jul 2012 19:22:37 +0000 (19:22 +0000)]
Move CompileAssert into namespace clang::ast_matchers:: to avoid naming
collisions until it is properly integrated in llvm/Support.

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

12 years agoAdd a hook to supply a custom CompilationDatabase. To add a custom CompilationDatabas...
Daniel Jasper [Wed, 11 Jul 2012 19:13:13 +0000 (19:13 +0000)]
Add a hook to supply a custom CompilationDatabase. To add a custom CompilationDatabase, make it implement findCompilationDatabaseForDirectory in CustomCompilationDatabase.h and set USE_COSTUM_COMPILATION_DATABASE.

Differential Revision: http://llvm-reviews.chandlerc.com/D4

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

12 years ago[driver] Fix so that clang can find correct path prefix for libc object files
Chad Rosier [Wed, 11 Jul 2012 19:08:21 +0000 (19:08 +0000)]
[driver] Fix so that clang can find correct path prefix for libc object files
from GNU binutils supporting multi-arch folder for ARM target.
Patch by Jiangning Liu <jiangning.liu@arm.com>.

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

12 years agoHandle #pragma visibility in explicit specializations and enums.
Rafael Espindola [Wed, 11 Jul 2012 18:14:09 +0000 (18:14 +0000)]
Handle #pragma visibility in explicit specializations and enums.

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

12 years agoMention -fms-compatibility and -fdelayed-template-parsing in UsersManual.
Nico Weber [Wed, 11 Jul 2012 16:56:28 +0000 (16:56 +0000)]
Mention -fms-compatibility and -fdelayed-template-parsing in UsersManual.

Also mention that -std=c++11 is now on by default on windows.

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

12 years agoEmit -verify diagnostics even when we have a fatal error.
Jordan Rose [Wed, 11 Jul 2012 16:50:36 +0000 (16:50 +0000)]
Emit -verify diagnostics even when we have a fatal error.

Previously we'd halt at the fatal error as expected, but not actually emit
any -verify-related diagnostics. This lets us catch cases that emit a
/different/ fatal error from the one we expected.

This is implemented by adding a "force emit" mode to DiagnosticBuilder, which
will cause diagnostics to immediately be emitted regardless of current
suppression. Needless to say this should probably be used /very/ sparingly.

Patch by Andy Gibbs! Tests for all of Andy's -verify patches coming soon.

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

12 years agoDefault to -std=c++11 on Windows.
Nico Weber [Wed, 11 Jul 2012 16:46:17 +0000 (16:46 +0000)]
Default to -std=c++11 on Windows.

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

12 years agoRemove unused override of CompilerInvocation::setLangDefaults().
Nico Weber [Wed, 11 Jul 2012 16:15:04 +0000 (16:15 +0000)]
Remove unused override of CompilerInvocation::setLangDefaults().

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

12 years agoFix handling of curly braces in NVPTX inline asm
Justin Holewinski [Wed, 11 Jul 2012 15:34:55 +0000 (15:34 +0000)]
Fix handling of curly braces in NVPTX inline asm

Fixes bug 13322

Patch by Dmitry Mikushin

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

12 years agoTemporarily revert this to see if it brings the gdb bot back.
Eric Christopher [Wed, 11 Jul 2012 15:32:13 +0000 (15:32 +0000)]
Temporarily revert this to see if it brings the gdb bot back.

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

12 years agoFix usage instructions for clang-check.
Daniel Jasper [Wed, 11 Jul 2012 15:05:24 +0000 (15:05 +0000)]
Fix usage instructions for clang-check.

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

12 years agoHow to set up clang tools for llvm
Alexander Kornienko [Wed, 11 Jul 2012 14:27:44 +0000 (14:27 +0000)]
How to set up clang tools for llvm

Summary: How to guide for setting up clang tooling for llvm repo.

Test Plan: this is untested

Reviewers: klimek, djasper

Reviewed By: klimek

Differential Revision: http://llvm-reviews.chandlerc.com/D3

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

12 years agoclang/test/Misc/diag-template-diffing-color.cpp: Introduce the feature 'ansi-escape...
NAKAMURA Takumi [Wed, 11 Jul 2012 11:44:00 +0000 (11:44 +0000)]
clang/test/Misc/diag-template-diffing-color.cpp: Introduce the feature 'ansi-escape-sequences'.

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

12 years agoLLVM_ON_WIN32 case: use the proper key in the UniqueFiles map.
Axel Naumann [Wed, 11 Jul 2012 09:41:34 +0000 (09:41 +0000)]
LLVM_ON_WIN32 case: use the proper key in the UniqueFiles map.

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

12 years agoDon't process #pragma visibility during instantiation. The visibility of the
Rafael Espindola [Wed, 11 Jul 2012 02:15:51 +0000 (02:15 +0000)]
Don't process #pragma visibility during instantiation. The visibility of the
instantiation depends on the template, its arguments and parameters, but not
where it is instantiated.

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

12 years agoThe end of a block doesn't necessarily need a line table entry unless
Eric Christopher [Wed, 11 Jul 2012 01:49:26 +0000 (01:49 +0000)]
The end of a block doesn't necessarily need a line table entry unless
there's something going on there. Remove the unconditional line entry
and only add one if we're emitting cleanups (any other statements
would be handled normally).

Fixes rdar://9199234

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

12 years agoFileCheck-ize.
Eric Christopher [Wed, 11 Jul 2012 01:49:24 +0000 (01:49 +0000)]
FileCheck-ize.

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

12 years ago[analyzer] Add debug.DumpCalls, which prints out any CallEvents it sees.
Jordan Rose [Tue, 10 Jul 2012 23:56:23 +0000 (23:56 +0000)]
[analyzer] Add debug.DumpCalls, which prints out any CallEvents it sees.

This is probably not so useful yet because it is not path-sensitive, though
it does try to show inlining with indentation.

This also adds a dump() method to CallEvent, which should be useful for
debugging.

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

12 years ago[analyzer] Guard against C++ member functions that look like system functions.
Jordan Rose [Tue, 10 Jul 2012 23:13:01 +0000 (23:13 +0000)]
[analyzer] Guard against C++ member functions that look like system functions.

C++ method calls and C function calls both appear as CallExprs in the AST.
This was causing crashes for an object that had a 'free' method.

<rdar://problem/11822244>

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

12 years agoFix crash when constant-evaluating a CXXConstructExpr representing
Richard Smith [Tue, 10 Jul 2012 22:12:55 +0000 (22:12 +0000)]
Fix crash when constant-evaluating a CXXConstructExpr representing
value-initialization for an array of class type with a trivial default
constructor.

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

12 years ago[analyzer] Construct stack variables directly in their VarDecl.
Jordan Rose [Tue, 10 Jul 2012 22:08:01 +0000 (22:08 +0000)]
[analyzer] Construct stack variables directly in their VarDecl.

Also contains a number of tweaks to inlining that are necessary
for constructors and destructors. (I have this enabled on a private
branch, but it is very much unstable.)

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

12 years ago[analyzer] Use CallEvent for building inlined stack frames.
Jordan Rose [Tue, 10 Jul 2012 22:07:57 +0000 (22:07 +0000)]
[analyzer] Use CallEvent for building inlined stack frames.

In order to accomplish this, we now build the callee's stack frame
as part of the CallEnter node, rather than the subsequent BlockEdge node.
This should not have any effect on perceived behavior or diagnostics.

This makes it safe to re-enable inlining of member overloaded operators.

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

12 years ago[analyzer] Make CallEnter, CallExitBegin, and CallExitEnd not be StmtPoints
Jordan Rose [Tue, 10 Jul 2012 22:07:52 +0000 (22:07 +0000)]
[analyzer] Make CallEnter, CallExitBegin, and CallExitEnd not be StmtPoints

These ProgramPoints are used in inlining calls,
and not all calls have associated statements anymore.

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

12 years ago[analyzer] Add a CXXDestructorCall CallEvent.
Jordan Rose [Tue, 10 Jul 2012 22:07:47 +0000 (22:07 +0000)]
[analyzer] Add a CXXDestructorCall CallEvent.

While this work is still fairly tentative (destructors are still left out of
the CFG by default), we now handle destructors in the same way as any other
calls, instead of just automatically trying to inline them.

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

12 years ago[analyzer] Add new PreImplicitCall and PostImplicitCall ProgramPoints.
Jordan Rose [Tue, 10 Jul 2012 22:07:42 +0000 (22:07 +0000)]
[analyzer] Add new PreImplicitCall and PostImplicitCall ProgramPoints.

These are currently unused, but are intended to be used in lieu of PreStmt
and PostStmt when the call is implicit (e.g. an automatic object destructor).

This also modifies the Data1 field of ProgramPoints to allow storing any
pointer-sized value, as opposed to only aligned pointers. This is necessary
to store SourceLocations.

There is currently no BugReporter support for these; they should be skipped
over in any diagnostic output.

This commit also tags checkers that currently rely on function calls only
occurring at StmtPoints.

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

12 years agoThread safety analysis: impove handling of trylock expressions.
DeLesley Hutchins [Tue, 10 Jul 2012 21:47:55 +0000 (21:47 +0000)]
Thread safety analysis: impove handling of trylock expressions.

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

12 years ago80-column violations and whitespace.
Chad Rosier [Tue, 10 Jul 2012 21:35:27 +0000 (21:35 +0000)]
80-column violations and whitespace.

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

12 years ago Add more matchers and do cleanups.
Daniel Jasper [Tue, 10 Jul 2012 20:20:19 +0000 (20:20 +0000)]
Add more matchers and do cleanups.

    Reviewers: klimek

    Differential Revision: http://ec2-50-18-127-156.us-west-1.compute.amazonaws.com/D2

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

12 years agoDisable death tests on platforms which don't support them.
Benjamin Kramer [Tue, 10 Jul 2012 17:30:44 +0000 (17:30 +0000)]
Disable death tests on platforms which don't support them.

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

12 years agoAdds support for auto-detection of compilation databases, looking in a directory...
Arnaud A. de Grandmaison [Tue, 10 Jul 2012 16:56:35 +0000 (16:56 +0000)]
Adds support for auto-detection of compilation databases, looking in a directory and all its parents.

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

12 years agoImprove r159256 following Chandler's comments:
Axel Naumann [Tue, 10 Jul 2012 16:50:27 +0000 (16:50 +0000)]
Improve r159256 following Chandler's comments:
Implement UniqueFileContainer::erase(), camelCase, add comment on future optimizations of the cache versus de-optimizations of invalidations.

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

12 years ago[analyzer] Remove redundant check (scalar type is a superset of integer)
Anna Zaks [Tue, 10 Jul 2012 16:27:55 +0000 (16:27 +0000)]
[analyzer] Remove redundant check (scalar type is a superset of integer)

PR13319 Reported by Jozsef Mihalicza.

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

12 years agoClear diagnostic counts after processing the diagnostics.
Axel Naumann [Tue, 10 Jul 2012 16:24:07 +0000 (16:24 +0000)]
Clear diagnostic counts after processing the diagnostics.
The consumer might see multiple input files (e.g. for cling) and since r159977 the count is maintained across input files.

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

12 years agoFixes the MSVC build.
Manuel Klimek [Tue, 10 Jul 2012 14:21:30 +0000 (14:21 +0000)]
Fixes the MSVC build.

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

12 years agoAdds support for auto-detection of compilation databases
Manuel Klimek [Tue, 10 Jul 2012 13:10:51 +0000 (13:10 +0000)]
Adds support for auto-detection of compilation databases
from a source file and changes clang-check to make use of this.

This makes clang-check just work on in-tree builds, and allows
easy setup via a symlink per source directory to make clang-check
work without any extra configuration.

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

12 years agoUpdate the docs with specifics about escaping of compile commands.
Manuel Klimek [Tue, 10 Jul 2012 08:05:54 +0000 (08:05 +0000)]
Update the docs with specifics about escaping of compile commands.

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

12 years agoJordan points out that this was incorrect: clang should recover from
Chris Lattner [Tue, 10 Jul 2012 05:03:05 +0000 (05:03 +0000)]
Jordan points out that this was incorrect: clang should recover from
*errors* with fixits on them by following the recovery advised by the
fixit, but if it is a fixit on a warning, then obviously the AST
should be for the code as-written.

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

12 years agoAllow -verify directives to specify a min and max count, not just "+".
Jordan Rose [Tue, 10 Jul 2012 02:57:26 +0000 (02:57 +0000)]
Allow -verify directives to specify a min and max count, not just "+".

  void f(); // expected-note 0+ {{previous declaration is here}}
  void g(); // expected-note 0-1 {{previous declaration is here}}

The old "+" syntax is still an alias for "1+", and single numbers still work.

Patch by Andy Gibbs!

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

12 years agoAllow line numbers on -verify directives.
Jordan Rose [Tue, 10 Jul 2012 02:57:03 +0000 (02:57 +0000)]
Allow line numbers on -verify directives.

// expected-warning@10 {{some text}}

The line number may be absolute (as above), or relative to the current
line by prefixing the number with either '+' or '-'.

Patch by Andy Gibbs!

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

12 years agoClean up VerifyDiagnosticsConsumer in preparation for upcoming enhancements.
Jordan Rose [Tue, 10 Jul 2012 02:56:15 +0000 (02:56 +0000)]
Clean up VerifyDiagnosticsConsumer in preparation for upcoming enhancements.

Patch by Andy Gibbs!

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

12 years agoProperly update the FormattedArgs vector when the template type diffing falls
Richard Trieu [Tue, 10 Jul 2012 01:46:04 +0000 (01:46 +0000)]
Properly update the FormattedArgs vector when the template type diffing falls
back to regular type printing.

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

12 years agoAdd an explanation of -Wobjc-literal-compare to the "Objective-C Literals" page
Jordan Rose [Tue, 10 Jul 2012 00:20:57 +0000 (00:20 +0000)]
Add an explanation of -Wobjc-literal-compare to the "Objective-C Literals" page

(per Jean-Daniel's suggestion to keep around an explanation of why
direct comparisons on ObjC literals are a bad idea)

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

12 years ago[cindex.py] Make CompileCommand.arguments usage consistent with CompileCommand.direct...
Arnaud A. de Grandmaison [Tue, 10 Jul 2012 00:00:05 +0000 (00:00 +0000)]
[cindex.py] Make CompileCommand.arguments usage consistent with CompileCommand.directory and the rest of the python binding

Patch by David Röthlisberger

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

12 years agoRevert 159966 since Tanya temporarily updated the test case.
Chad Rosier [Mon, 9 Jul 2012 23:04:15 +0000 (23:04 +0000)]
Revert 159966 since Tanya temporarily updated the test case.

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

12 years agoTEMPORARY. I will fix this properly shortly.
Tanya Lattner [Mon, 9 Jul 2012 23:01:07 +0000 (23:01 +0000)]
TEMPORARY. I will fix this properly shortly.
Silence buildbot so I can figure out the right flag to put this warning under.

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

12 years agoPut new warning in r159965 under a flag to appease buildbots. Someone please
Chad Rosier [Mon, 9 Jul 2012 22:59:22 +0000 (22:59 +0000)]
Put new warning in r159965 under a flag to appease buildbots.  Someone please
verify this is the correct grouping.

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

12 years agoPatch by Anton Lokhmotov to add OpenCL work group size attributes.
Tanya Lattner [Mon, 9 Jul 2012 22:06:01 +0000 (22:06 +0000)]
Patch by Anton Lokhmotov to add OpenCL work group size attributes.

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

12 years agoComment lexing: fix lexing to actually work in non-error cases.
Dmitri Gribenko [Mon, 9 Jul 2012 21:32:40 +0000 (21:32 +0000)]
Comment lexing: fix lexing to actually work in non-error cases.

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

12 years agoThe delete argument should not be converted to void*.
Abramo Bagnara [Mon, 9 Jul 2012 21:15:43 +0000 (21:15 +0000)]
The delete argument should not be converted to void*.

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

12 years agoobjective-c: provide fixit hint for @autoreleasepool
Fariborz Jahanian [Mon, 9 Jul 2012 20:00:35 +0000 (20:00 +0000)]
objective-c: provide fixit hint for @autoreleasepool
and similar other keywords. // rdar://10723084

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