]> granicus.if.org Git - clang/log
clang
13 years agoCMake: Fix test. CMake has not built unittests yet.
NAKAMURA Takumi [Thu, 3 Feb 2011 09:01:12 +0000 (09:01 +0000)]
CMake: Fix test. CMake has not built unittests yet.

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

13 years agoCapture a few implicit references to 'self'.
John McCall [Thu, 3 Feb 2011 09:00:02 +0000 (09:00 +0000)]
Capture a few implicit references to 'self'.

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

13 years agoMore capturing of 'this': implicit member expressions. Getting that
John McCall [Thu, 3 Feb 2011 08:15:49 +0000 (08:15 +0000)]
More capturing of 'this':  implicit member expressions.  Getting that
right for anonymous struct/union members led to me discovering some
seemingly broken code in that area of Sema, which I fixed, partly by
changing the representation of member pointer constants so that
IndirectFieldDecls aren't expanded.  This led to assorted cleanups with
member pointers in CodeGen, and while I was doing that I saw some random
other things to clean up.

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

13 years agoReenable -Wuninitialized warning for captured block variables.
Ted Kremenek [Thu, 3 Feb 2011 06:51:50 +0000 (06:51 +0000)]
Reenable -Wuninitialized warning for captured block variables.

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

13 years agoAdd test from PR9130.
Rafael Espindola [Thu, 3 Feb 2011 06:36:50 +0000 (06:36 +0000)]
Add test from PR9130.

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

13 years agoRevert 124768.
Rafael Espindola [Thu, 3 Feb 2011 06:30:58 +0000 (06:30 +0000)]
Revert 124768.
This reopens PR99114, but that one at least can be avoided with an #include.
PR9130 cannot.

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

13 years agoAdd gTest unittests to clang, and write the first one.
Jeffrey Yasskin [Thu, 3 Feb 2011 04:51:52 +0000 (04:51 +0000)]
Add gTest unittests to clang, and write the first one.
This is the Makefile version only; the cmake implementation is coming soon.

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

13 years agoRevert 124754 and 124760 as they made clang unusable in the presence of symbolic
Rafael Espindola [Thu, 3 Feb 2011 04:35:45 +0000 (04:35 +0000)]
Revert 124754 and 124760 as they made clang unusable in the presence of symbolic
links.

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

13 years agoFrontend: Switch -header-include-file output to use unbuffered raw_ostreams with
Daniel Dunbar [Thu, 3 Feb 2011 03:45:00 +0000 (03:45 +0000)]
Frontend: Switch -header-include-file output to use unbuffered raw_ostreams with
the atomic writes option, since the intent is that this option be set for an
entire build, which may have any number of compiler instances writing to the
same output file.

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

13 years agoDon't try to mark virtual members referenced for classes where the key function
Anders Carlsson [Thu, 3 Feb 2011 02:08:44 +0000 (02:08 +0000)]
Don't try to mark virtual members referenced for classes where the key function
is not defined in the current translation unit. Doing so lead to compile errors
such as PR9114.

Instead, when CodeGen is building the vtable, don't try to emit a definition
for functions that aren't marked used in the current translation unit.
Fixes PR9114.

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

13 years agoFix Microsoft bit field problem. This resolves the Index\complete-exprs.c regression...
Francois Pichet [Thu, 3 Feb 2011 02:02:42 +0000 (02:02 +0000)]
Fix Microsoft bit field problem. This resolves the Index\complete-exprs.c regression on Win32.

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

13 years agoImprove the performance of filename canonicalization by avoiding
Douglas Gregor [Thu, 3 Feb 2011 00:18:12 +0000 (00:18 +0000)]
Improve the performance of filename canonicalization by avoiding
redundant searches in the string. No functionality change.

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

13 years agoBased on user feedback, swap -Wuninitialized diagnostics to have the warning refer...
Ted Kremenek [Wed, 2 Feb 2011 23:35:53 +0000 (23:35 +0000)]
Based on user feedback, swap -Wuninitialized diagnostics to have the warning refer to the bad use, and the note to the variable declaration.

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

13 years ago-fapple-kext, elimination of all direct calls to virtual dtors.
Fariborz Jahanian [Wed, 2 Feb 2011 23:12:46 +0000 (23:12 +0000)]
-fapple-kext, elimination of all direct calls to virtual dtors.

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

13 years agoEmit debug info for template value parameters.
Devang Patel [Wed, 2 Feb 2011 22:36:18 +0000 (22:36 +0000)]
Emit debug info for template value parameters.

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

13 years agoCanonicalize path names in the file manager before performing a lookup
Douglas Gregor [Wed, 2 Feb 2011 22:30:17 +0000 (22:30 +0000)]
Canonicalize path names in the file manager before performing a lookup
on that name. Canonicalization eliminates silliness such as "." and
"foo/.." that breaks the uniquing of files in the presence of virtual
files or files whose inode numbers have changed during
parsing/re-parsing. c-index-test isn't able to create this crazy
situation, so I've resorted to testing outside of the Clang
tree. Fixes <rdar://problem/8928220>.

Note that this hackery will go away once we have a real virtual file
system on which we can layer FileManager; the virtual-files hack is
showing cracks.

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

13 years agoEmit debug info for template type parameters.
Devang Patel [Wed, 2 Feb 2011 21:38:49 +0000 (21:38 +0000)]
Emit debug info for template type parameters.

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

13 years agoclang: Add support for a CC_PRINT_HEADERS environment variable, which mirrors
Daniel Dunbar [Wed, 2 Feb 2011 21:11:35 +0000 (21:11 +0000)]
clang: Add support for a CC_PRINT_HEADERS environment variable, which mirrors
CC_PRINT_OPTIONS and can be used to get some out-of-band information on header
usage from a build.

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

13 years agoFrontend: Add -header-include-file option, for allowing saving header include
Daniel Dunbar [Wed, 2 Feb 2011 21:11:31 +0000 (21:11 +0000)]
Frontend: Add -header-include-file option, for allowing saving header include
information to a file.

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

13 years agoFrontend: Add support (unused) for showing all "interesting" headers, not just
Daniel Dunbar [Wed, 2 Feb 2011 21:11:24 +0000 (21:11 +0000)]
Frontend: Add support (unused) for showing all "interesting" headers, not just
ones outside the predefines buffer (which is what -H does).

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

13 years agoTurn test for // rdar://8945175 into a sema test.
Fariborz Jahanian [Wed, 2 Feb 2011 21:10:07 +0000 (21:10 +0000)]
Turn test for // rdar://8945175 into a sema test.

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

13 years agoFor gcc compatibility, size of a class which is zero
Fariborz Jahanian [Wed, 2 Feb 2011 19:36:18 +0000 (19:36 +0000)]
For gcc compatibility, size of a class which is zero
but has non-empty data fields, such as array of zero length,
remains zero.
// rdar://8945175

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

13 years agoRevert r124704, which uniqued code-completion strings. The space
Douglas Gregor [Wed, 2 Feb 2011 19:04:30 +0000 (19:04 +0000)]
Revert r124704, which uniqued code-completion strings. The space
savings of 25% sounds impressive, except that this amounted to only
about 360k in our standard "large" completion result set (40,000
results). Since code completion is performance-sensitive, the 4%
slowdown due to uniquing outweighs the 360k benefit.

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

13 years agoAdd NetBSD target support. Patch by Joerg Sonnenberger.
Benjamin Kramer [Wed, 2 Feb 2011 18:59:27 +0000 (18:59 +0000)]
Add NetBSD target support. Patch by Joerg Sonnenberger.

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

13 years agoDon't warn for -Wnon-virtual-dtor for dependent classes.
Argyrios Kyrtzidis [Wed, 2 Feb 2011 18:47:41 +0000 (18:47 +0000)]
Don't warn for -Wnon-virtual-dtor for dependent classes.

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

13 years agoFrontend: Factor out header include dumping (-H) into its own preprocessor
Daniel Dunbar [Wed, 2 Feb 2011 15:41:17 +0000 (15:41 +0000)]
Frontend: Factor out header include dumping (-H) into its own preprocessor
callbacks class.
 - Aside from being generally cleaner, this also allows -H to work correctly in
   modes other than standard preprocessing (e.g., -c, -MM, etc.)

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

13 years agoAn insomniac stab at making block declarations list the variables they close
John McCall [Wed, 2 Feb 2011 13:00:07 +0000 (13:00 +0000)]
An insomniac stab at making block declarations list the variables they close
on, as well as more reliably limiting invalid references to locals from
nested scopes.

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

13 years agoFix test by fully specifying the platform.
Nick Lewycky [Wed, 2 Feb 2011 07:17:02 +0000 (07:17 +0000)]
Fix test by fully specifying the platform.

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

13 years agoTurn on -momit-leaf-frame-pointer by default on all non-Darwin platforms.
Nick Lewycky [Wed, 2 Feb 2011 06:43:03 +0000 (06:43 +0000)]
Turn on -momit-leaf-frame-pointer by default on all non-Darwin platforms.
Fixes PR9121!

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

13 years agoUpdate this test following recent optimizer changes.
Dan Gohman [Wed, 2 Feb 2011 02:21:10 +0000 (02:21 +0000)]
Update this test following recent optimizer changes.

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

13 years agoRemove redundant check to not warn for warn_equality_with_extra_parens if we are...
Ted Kremenek [Wed, 2 Feb 2011 02:20:30 +0000 (02:20 +0000)]
Remove redundant check to not warn for warn_equality_with_extra_parens if we are in a macro.  This is checked twice.

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

13 years agoUnique code-completion strings. On Cocoa.h, this costs us about 4% in
Douglas Gregor [Tue, 1 Feb 2011 23:59:42 +0000 (23:59 +0000)]
Unique code-completion strings. On Cocoa.h, this costs us about 4% in
speed but saves us about 25% of the memory usage for strings.

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

13 years agoWhen diagnosing address-space changes, apply array-to-pointer decay first.
John McCall [Tue, 1 Feb 2011 23:28:01 +0000 (23:28 +0000)]
When diagnosing address-space changes, apply array-to-pointer decay first.

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

13 years ago-fapple-kext support for indirect call to virtuals dtors - wip.
Fariborz Jahanian [Tue, 1 Feb 2011 23:22:34 +0000 (23:22 +0000)]
-fapple-kext support for indirect call to virtuals dtors - wip.

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

13 years agoFix name lookup issue
Douglas Gregor [Tue, 1 Feb 2011 23:14:23 +0000 (23:14 +0000)]
Fix name lookup issue

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

13 years agoAdd support for x86-64 Mandriva 2010.2. Reported by 'rindolf' on IRC!
Nick Lewycky [Tue, 1 Feb 2011 23:03:29 +0000 (23:03 +0000)]
Add support for x86-64 Mandriva 2010.2. Reported by 'rindolf' on IRC!

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

13 years agoCreate a special allocator class for code completion, so that all of
Douglas Gregor [Tue, 1 Feb 2011 22:57:45 +0000 (22:57 +0000)]
Create a special allocator class for code completion, so that all of
the string copying goes through a single place that can have
associated state.

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

13 years agoUse tempfiles for the .o outputs.
Matt Beaumont-Gay [Tue, 1 Feb 2011 22:44:06 +0000 (22:44 +0000)]
Use tempfiles for the .o outputs.

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

13 years agoEnable the self-init checker in scan-build.
Ted Kremenek [Tue, 1 Feb 2011 22:36:11 +0000 (22:36 +0000)]
Enable the self-init checker in scan-build.

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

13 years agoDon't warn about extraneous '()' around a comparison if it occurs within a macro.
Ted Kremenek [Tue, 1 Feb 2011 22:36:09 +0000 (22:36 +0000)]
Don't warn about extraneous '()' around a comparison if it occurs within a macro.

Macros frequently contain extra '()' to make instantiation less error prone.
This warning was flagging a ton of times on postgresql because of its use of macros.

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

13 years agoDon't warn for "if ((a == b))" if the parens came from a macro. Thanks to Fariborz...
Argyrios Kyrtzidis [Tue, 1 Feb 2011 22:23:56 +0000 (22:23 +0000)]
Don't warn for "if ((a == b))" if the parens came from a macro. Thanks to Fariborz for the hint!

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

13 years agoDo the right thing for zero-initializing VLAs that don't have a zero
John McCall [Tue, 1 Feb 2011 21:35:06 +0000 (21:35 +0000)]
Do the right thing for zero-initializing VLAs that don't have a zero
bit-pattern.  It's not clear that this is actually useful given current
language restrictions.

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

13 years agoAdd updated Debian ARM include path.
Nick Lewycky [Tue, 1 Feb 2011 21:32:14 +0000 (21:32 +0000)]
Add updated Debian ARM include path.

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

13 years agoProvide constant strings for certain common code completion strings,
Douglas Gregor [Tue, 1 Feb 2011 21:15:40 +0000 (21:15 +0000)]
Provide constant strings for certain common code completion strings,
eliminating the need to copy those strings.

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

13 years agoAdd test case for dead stores checker to not flag dead assignments to 'self' within...
Ted Kremenek [Tue, 1 Feb 2011 20:45:26 +0000 (20:45 +0000)]
Add test case for dead stores checker to not flag dead assignments to 'self' within a nested assignment.

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

13 years agoFix the message. Thanks to Thomas Clement for noticing.
Argyrios Kyrtzidis [Tue, 1 Feb 2011 20:33:05 +0000 (20:33 +0000)]
Fix the message. Thanks to Thomas Clement for noticing.

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

13 years agoFor "if ((a == b))" only warn if 'a' is a modifiable l-value. Caught by John!
Argyrios Kyrtzidis [Tue, 1 Feb 2011 19:32:59 +0000 (19:32 +0000)]
For "if ((a == b))" only warn if 'a' is a modifiable l-value. Caught by John!

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

13 years ago[analyzer] Slightly improve the diagnostic message of ObjCSelfInitChecker.
Argyrios Kyrtzidis [Tue, 1 Feb 2011 19:32:55 +0000 (19:32 +0000)]
[analyzer] Slightly improve the diagnostic message of ObjCSelfInitChecker.

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

13 years agoAllocate CodeCompletionString and all of its components in a
Douglas Gregor [Tue, 1 Feb 2011 19:23:04 +0000 (19:23 +0000)]
Allocate CodeCompletionString and all of its components in a
BumpPtrAllocator, rather than manually new/delete'ing them. This
optimization also allows us to avoid allocating memory for and copying
constant strings (e.g., "return", "class").

This also required embedding the priority and availability of results
within the code completion string, to avoid extra memory allocation
within libclang.

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

13 years agoWarn for "if ((a == b))" where the equality expression is needlessly wrapped inside...
Argyrios Kyrtzidis [Tue, 1 Feb 2011 18:24:22 +0000 (18:24 +0000)]
Warn for "if ((a == b))" where the equality expression is needlessly wrapped inside parentheses.
It's highly likely that the user intended an assignment used as condition.

Addresses rdar://8848646.

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

13 years agoAdd temporary hack to -Wuninitialize to create a separate CFG (for C++ code) that...
Ted Kremenek [Tue, 1 Feb 2011 17:43:21 +0000 (17:43 +0000)]
Add temporary hack to -Wuninitialize to create a separate CFG (for C++ code) that doesn't include implicit dtors.

Implicit dtors confuse the ad hoc path-sensitivity of UninitializedValuesV2.cpp.  This isn't
the ideal solution, as it will directly impact compile time, but should significantly reduce
the noise of -Wuninitialized on some code bases.

This immediately "fixes" the false positive reported in PR 9063, although this
isn't the right fix in the long run.

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

13 years agoEnhance -Wuninitialized to better reason about || and &&, tracking dual dataflow...
Ted Kremenek [Tue, 1 Feb 2011 17:43:18 +0000 (17:43 +0000)]
Enhance -Wuninitialized to better reason about || and &&, tracking dual dataflow facts and properly merging them.

Fixes PR 9076.

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

13 years agoImplement access checking for the "delete" operator. Fixes PR9050,
Douglas Gregor [Tue, 1 Feb 2011 15:50:11 +0000 (15:50 +0000)]
Implement access checking for the "delete" operator. Fixes PR9050,
from Alex Miller!

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

13 years agoFix a thinko where I didn't update a consistency check for
Douglas Gregor [Tue, 1 Feb 2011 15:24:58 +0000 (15:24 +0000)]
Fix a thinko where I didn't update a consistency check for
PackExpansionType in the AST reader. We need more testing for variadic
templates + PCH, but this fixes PR9073.

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

13 years agoBasic support for -mms-bitfields, from Carl Norum!
Douglas Gregor [Tue, 1 Feb 2011 15:15:22 +0000 (15:15 +0000)]
Basic support for -mms-bitfields, from Carl Norum!

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

13 years agoSupport EFI target triple, from Carl Norum!
Douglas Gregor [Tue, 1 Feb 2011 15:06:18 +0000 (15:06 +0000)]
Support EFI target triple, from Carl Norum!

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

13 years agoMake that test case actually test something, and add another test.
John McCall [Tue, 1 Feb 2011 08:30:38 +0000 (08:30 +0000)]
Make that test case actually test something, and add another test.

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

13 years agoThe code trying to assign a typedef to an anonymous tag declaration was
John McCall [Tue, 1 Feb 2011 08:20:08 +0000 (08:20 +0000)]
The code trying to assign a typedef to an anonymous tag declaration was
extremely rambunctious, both on parsing and on template instantiation.
Calm it down, fixing an internal consistency assert on anonymous enum
instantiation manglings.

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

13 years agoRevert 124633. The linker has been told how to merge available_externally.
Rafael Espindola [Tue, 1 Feb 2011 05:45:26 +0000 (05:45 +0000)]
Revert 124633. The linker has been told how to merge available_externally.

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

13 years agoCorrect units in doxygen comment for NonVirtualSize.
Ken Dyck [Tue, 1 Feb 2011 02:03:12 +0000 (02:03 +0000)]
Correct units in doxygen comment for NonVirtualSize.

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

13 years agoConvert RecordLayout::NonVirtualSize from bit units to CharUnits.
Ken Dyck [Tue, 1 Feb 2011 01:52:10 +0000 (01:52 +0000)]
Convert RecordLayout::NonVirtualSize from bit units to CharUnits.

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

13 years agoWhen initializing struct members, the important thing is that the "initializing"...
Argyrios Kyrtzidis [Tue, 1 Feb 2011 00:52:10 +0000 (00:52 +0000)]
When initializing struct members, the important thing is that the "initializing" expression is
compatible, not having the same type.

Fix rdar://8183908 in which compatible vector types weren't initialized properly leading to a crash.

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

13 years agoSet visibility for available_externally globals. This is important for two reasons:
Rafael Espindola [Tue, 1 Feb 2011 00:37:17 +0000 (00:37 +0000)]
Set visibility for available_externally globals. This is important for two reasons:

* llvm-link would complains about mismatched visibility
* If we produce a relocation with an available_externally, it is good to know that
it is hidden.

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

13 years agoPerform the bad-address-space conversions check as part of
John McCall [Tue, 1 Feb 2011 00:10:29 +0000 (00:10 +0000)]
Perform the bad-address-space conversions check as part of
CheckPointerTypesForAssignment.

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

13 years agoImprove the diagnostic for -Wcustom-atomic-properties. Suggestion by Fariborz!
Argyrios Kyrtzidis [Mon, 31 Jan 2011 23:20:03 +0000 (23:20 +0000)]
Improve the diagnostic for -Wcustom-atomic-properties. Suggestion by Fariborz!

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

13 years agoMake Check*PointerTypesForAssignment private and tell them that they're
John McCall [Mon, 31 Jan 2011 23:13:11 +0000 (23:13 +0000)]
Make Check*PointerTypesForAssignment private and tell them that they're
working on canonical types already.

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

13 years agoHarden Lexer::GetBeginningOfToken() against bogus source locations and
Douglas Gregor [Mon, 31 Jan 2011 22:42:36 +0000 (22:42 +0000)]
Harden Lexer::GetBeginningOfToken() against bogus source locations and
the disappearance/alteration of files.

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

13 years agoSlightly reorganize CheckAssignmentConstraints and remove some redundant
John McCall [Mon, 31 Jan 2011 22:28:28 +0000 (22:28 +0000)]
Slightly reorganize CheckAssignmentConstraints and remove some redundant
logic.

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

13 years agoTeach Diagnostic::setClient() to free the existing, owned
Douglas Gregor [Mon, 31 Jan 2011 22:04:05 +0000 (22:04 +0000)]
Teach Diagnostic::setClient() to free the existing, owned
client. Fixes a libclang leak.

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

13 years agolibclang: Don't allow RemoveFileOnSignal to be called via libclang, badness can
Daniel Dunbar [Mon, 31 Jan 2011 22:00:44 +0000 (22:00 +0000)]
libclang: Don't allow RemoveFileOnSignal to be called via libclang, badness can
ensue.

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

13 years agoFrontend: Add an explicit RemoveFileOnSignal flag argument, to control the
Daniel Dunbar [Mon, 31 Jan 2011 22:00:42 +0000 (22:00 +0000)]
Frontend: Add an explicit RemoveFileOnSignal flag argument, to control the
automatic behavior (which is undesirable in a multithreaded context).

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

13 years agoAdd -Wcustom-atomic-properties which warns if an atomic-by-default property has custo...
Argyrios Kyrtzidis [Mon, 31 Jan 2011 21:34:11 +0000 (21:34 +0000)]
Add -Wcustom-atomic-properties which warns if an atomic-by-default property has custom getter or setter.

The rationale is that it is highly likely that the user's getter/setter isn't atomically implemented. Off by default.
Addresses rdar://8782645.

-Wcustom-atomic-properties and -Wimplicit-atomic-properties are under the -Watomic-properties group.

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

13 years agoDocument that set-xcode-analyzer should typically be run using sudo.
Ted Kremenek [Mon, 31 Jan 2011 20:45:38 +0000 (20:45 +0000)]
Document that set-xcode-analyzer should typically be run using sudo.

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

13 years agoImplement reasonable conversion ranking for Objective-C pointer
Douglas Gregor [Mon, 31 Jan 2011 18:51:41 +0000 (18:51 +0000)]
Implement reasonable conversion ranking for Objective-C pointer
conversions (<rdar://problem/8592139>) for overload resolution. The
conversion ranking mirrors C++'s conversion ranking fairly closely,
except that we use a same pseudo-subtyping relationship employed by
Objective-C pointer assignment rather than simple checking
derived-to-base conversions. This change covers:

  - Conversions to pointers to a specific object type are better than
  conversions to 'id', 'Class', qualified 'id', or qualified 'Class'
  (note: GCC doesn't perform this ranking, but it matches C++'s rules
  for ranking conversions to void*).
  - Conversions to qualified 'id' or qualified 'Class' are better than
  conversions to 'id' or 'Class', respectively.
  - When two conversion sequences convert to the same type, rank the
  conversions based on the relationship between the types we're
  converting from.
  - When two conversion sequences convert from the same non-id,
  non-Class type, rank the conversions based on the relationship of
  the types we're converting to. (note: GCC allows this ranking even
  when converting from 'id', which is extremeley dangerous).

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

13 years agoOnly warn for -Wnon-virtual-dtor for public destructors. Thanks to Benjamin Kramer...
Argyrios Kyrtzidis [Mon, 31 Jan 2011 17:10:25 +0000 (17:10 +0000)]
Only warn for -Wnon-virtual-dtor for public destructors. Thanks to Benjamin Kramer for the hint!

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

13 years agoImplement the suggested resolution to core issue 547, extended to also
Douglas Gregor [Mon, 31 Jan 2011 16:09:46 +0000 (16:09 +0000)]
Implement the suggested resolution to core issue 547, extended to also
allow ref-qualifiers on function types used as template type
arguments. GNU actually allows cv-qualifiers on function types in many
places where it shouldn't, so we currently categorize this as a GNU
extension.

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

13 years agoWarn if the class has virtual methods but non-virtual destructor. Addresses rdar...
Argyrios Kyrtzidis [Mon, 31 Jan 2011 07:05:00 +0000 (07:05 +0000)]
Warn if the class has virtual methods but non-virtual destructor. Addresses rdar://8756445.

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

13 years agoDon't warn that variables in C++ static member functions shadow fields. Fixes rdar...
Argyrios Kyrtzidis [Mon, 31 Jan 2011 07:04:54 +0000 (07:04 +0000)]
Don't warn that variables in C++ static member functions shadow fields. Fixes rdar://8900456.

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

13 years agoFix the diagnostic when we are shadowing an external variable and there exists a...
Argyrios Kyrtzidis [Mon, 31 Jan 2011 07:04:50 +0000 (07:04 +0000)]
Fix the diagnostic when we are shadowing an external variable and there exists a locally scoped extern with the same name.

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

13 years agoDiagnose if extern local variable is followed by non-extern and vice-versa.
Argyrios Kyrtzidis [Mon, 31 Jan 2011 07:04:46 +0000 (07:04 +0000)]
Diagnose if extern local variable is followed by non-extern and vice-versa.

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

13 years ago'extern' variables in functions don't shadow externs in global scope. Fixes rdar...
Argyrios Kyrtzidis [Mon, 31 Jan 2011 07:04:41 +0000 (07:04 +0000)]
'extern' variables in functions don't shadow externs in global scope. Fixes rdar://8883302.

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

13 years agoIf there were errors, disable 'unused' warnings since they will mostly be noise.
Argyrios Kyrtzidis [Mon, 31 Jan 2011 07:04:37 +0000 (07:04 +0000)]
If there were errors, disable 'unused' warnings since they will mostly be noise.
Fixes rdar://8736362.

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

13 years agoError for use of field from anonymous struct or union should say "invalid use of...
Argyrios Kyrtzidis [Mon, 31 Jan 2011 07:04:33 +0000 (07:04 +0000)]
Error for use of field from anonymous struct or union should say "invalid use of nonstatic data member"
not "call to non-static member function without an object argument".

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

13 years agoAmazing that there are still issues with the fields of anonymous struct/unions..
Argyrios Kyrtzidis [Mon, 31 Jan 2011 07:04:29 +0000 (07:04 +0000)]
Amazing that there are still issues with the fields of anonymous struct/unions..
Allow taking the address of such a field for a pointer-to-member constant. Fixes rdar://8818236.

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

13 years agoFix test that didn't actually test what it wanted to test.
Argyrios Kyrtzidis [Mon, 31 Jan 2011 07:04:24 +0000 (07:04 +0000)]
Fix test that didn't actually test what it wanted to test.

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

13 years agoAllow Microsoft attributes in a constructor's parameter list.
Francois Pichet [Mon, 31 Jan 2011 04:54:32 +0000 (04:54 +0000)]
Allow Microsoft attributes in a constructor's parameter list.
This fixes a few compile errors when parsing <regex> from MSVC 2008 with clang.

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

13 years agoWhen building with optimizations, emit vtables where the key is not in the
Anders Carlsson [Sun, 30 Jan 2011 20:45:54 +0000 (20:45 +0000)]
When building with optimizations, emit vtables where the key is not in the
current translation unit as available_externally.

This helps devirtualize the second example in PR3100, comment 18:

struct S { S() {}; virtual void xyzzy(); };
inline void foo(S *s) { s->xyzzy(); }
void bar() { S s; foo(&s); }

This involved four major changes:

1. In DefineUsedVTables, always mark virtual member functions as referenced for
   non-template classes and class template specializations.
2. In CodeGenVTables::ShouldEmitVTableInThisTU return true if optimizations are
   enabled, even if the key function is not implemented in this translation
   unit. We don't ever do this for code compiled with -fapple-kext, because we
   don't ever want to devirtualize virtual member function calls in that case.
3. Give the correct linkage for vtables where the key function is not defined.
4. Update the linkage for RTTI structures when necessary.

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

13 years agoAdd hardcoded -L/usr/lib after all -L options to the FreeBSD linker
Roman Divacky [Sun, 30 Jan 2011 08:12:24 +0000 (08:12 +0000)]
Add hardcoded -L/usr/lib after all -L options to the FreeBSD linker
invocation.

This mimics what gcc does and fixes libtool check for libraries.

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

13 years agoFix test.
Anders Carlsson [Sat, 29 Jan 2011 22:39:23 +0000 (22:39 +0000)]
Fix test.

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

13 years agoRemove dead code.
Anders Carlsson [Sat, 29 Jan 2011 22:15:18 +0000 (22:15 +0000)]
Remove dead code.

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

13 years agoWhen emitting RTTI for a non-class type, compute the visibility of the RTTI data...
Anders Carlsson [Sat, 29 Jan 2011 22:10:32 +0000 (22:10 +0000)]
When emitting RTTI for a non-class type, compute the visibility of the RTTI data based on the explicit visibility of the type.

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

13 years agoSupport for -plugin-arg- with -add-plugin
Nico Weber [Sat, 29 Jan 2011 21:21:49 +0000 (21:21 +0000)]
Support for -plugin-arg- with -add-plugin

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

13 years agoMove GetLLVMVisibility to CodeGenModule.
Anders Carlsson [Sat, 29 Jan 2011 20:59:35 +0000 (20:59 +0000)]
Move GetLLVMVisibility to CodeGenModule.

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

13 years agoUpdate tests.
Anders Carlsson [Sat, 29 Jan 2011 20:57:16 +0000 (20:57 +0000)]
Update tests.

I'm still not sure if having the typenames be visible with -hidden-weak-vtables, but I think it makes sense.

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

13 years agoAdd RTTIBuilder::GetAddrOfTypeName which uses the newly added CreateOrReplaceCXXRunti...
Anders Carlsson [Sat, 29 Jan 2011 20:36:11 +0000 (20:36 +0000)]
Add RTTIBuilder::GetAddrOfTypeName which uses the newly added CreateOrReplaceCXXRuntimeVariable.

Set the visibility for typeinfo names.

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

13 years agoChange CodeGenModule::setTypeVisibility to take a TypeVisibilityKind enum instead...
Anders Carlsson [Sat, 29 Jan 2011 20:24:48 +0000 (20:24 +0000)]
Change CodeGenModule::setTypeVisibility to take a TypeVisibilityKind enum instead of an "IsForRTTI" flag.

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

13 years agoAdd a test for RTTI visibility.
Anders Carlsson [Sat, 29 Jan 2011 19:52:22 +0000 (19:52 +0000)]
Add a test for RTTI visibility.

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

13 years agoReplace an isa/cast with a dyn_cast.
Anders Carlsson [Sat, 29 Jan 2011 19:41:00 +0000 (19:41 +0000)]
Replace an isa/cast with a dyn_cast.

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

13 years agoGet rid of an unneeded parameter from setGlobalVisibility.
Anders Carlsson [Sat, 29 Jan 2011 19:39:23 +0000 (19:39 +0000)]
Get rid of an unneeded parameter from setGlobalVisibility.

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

13 years agoGive VTTs the right visibility.
Anders Carlsson [Sat, 29 Jan 2011 19:34:19 +0000 (19:34 +0000)]
Give VTTs the right visibility.

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