]> granicus.if.org Git - clang/log
clang
11 years agoclang-format: Don't split a >>-operator.
Daniel Jasper [Tue, 17 Sep 2013 08:15:46 +0000 (08:15 +0000)]
clang-format: Don't split a >>-operator.

Before (with column limit 60):
  aaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa >
      > aaaaa);

After:
  aaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaa >> aaaaa);

(Not sure how that could have stayed in that long without being
detected..)

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

11 years agoPush contents of X86TargetInfo::setFeatureEnabled down to a static function called...
Craig Topper [Tue, 17 Sep 2013 04:51:29 +0000 (04:51 +0000)]
Push contents of X86TargetInfo::setFeatureEnabled down to a static function called by the virtual version and all the places in getDefaultFeatures. This way getDefaultFeatures doesn't make so many virtual calls.

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

11 years agoMark setSSELevel/setMMXLevel/setXOPLevel as static since they don't access anything...
Craig Topper [Tue, 17 Sep 2013 04:12:55 +0000 (04:12 +0000)]
Mark setSSELevel/setMMXLevel/setXOPLevel as static since they don't access anything in the class.

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

11 years agoDon't build extra init lists.
Eli Friedman [Tue, 17 Sep 2013 04:07:04 +0000 (04:07 +0000)]
Don't build extra init lists.

AssignConvertType::IncompatibleVectors means the two types are in fact
compatible. :)

No testcase; I don't think the extra init list has any actual visible effect
other than making the resulting AST dump look a bit strange.

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

11 years agoFix const-eval of vector init-lists of a vector.
Eli Friedman [Tue, 17 Sep 2013 04:07:02 +0000 (04:07 +0000)]
Fix const-eval of vector init-lists of a vector.

Like any other type, an init list for a vector can have the same type as
the vector itself; handle that case.

<rdar://problem/14990460>

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

11 years ago[analyzer] More reliably detect property accessors.
Anna Zaks [Tue, 17 Sep 2013 01:30:57 +0000 (01:30 +0000)]
[analyzer] More reliably detect property accessors.

This has a side effect of preventing a crash, which occurs because we get a
property getter declaration, which is overriding but is declared inside
@protocol. Will file a bug about this inconsistency internally. Getting a
small test case is very challenging.

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

11 years ago[analyzer] Stop tracking the objects with attribute cleanup in the RetainCountChecker.
Anna Zaks [Tue, 17 Sep 2013 00:53:28 +0000 (00:53 +0000)]
[analyzer] Stop tracking the objects with attribute cleanup in the RetainCountChecker.

This suppresses false positive leaks. We stop tracking a value if it is assigned to a variable declared with a cleanup attribute.

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

11 years agoAddress review comment on r189557.
Eli Friedman [Tue, 17 Sep 2013 00:51:31 +0000 (00:51 +0000)]
Address review comment on r189557.

We need to escape filenames the same way in InclusionRewriter whether
UseLineDirective is true or false.

Review comment from http://llvm.org/bugs/show_bug.cgi?id=17018#c2

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

11 years agoFix potential race in module building code.
Eli Friedman [Tue, 17 Sep 2013 00:51:29 +0000 (00:51 +0000)]
Fix potential race in module building code.

Let the module building code handle the case of overwriting an existing file
itself, so the existing locking infrastructure works correctly.

<rdar://problem/14403381>

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

11 years agocl-options.c just use touch to create that .obj file
Hans Wennborg [Tue, 17 Sep 2013 00:50:43 +0000 (00:50 +0000)]
cl-options.c just use touch to create that .obj file

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

11 years agoFix test/Driver/cl-options.c test
Hans Wennborg [Tue, 17 Sep 2013 00:25:08 +0000 (00:25 +0000)]
Fix test/Driver/cl-options.c test

The test builds an object file to be able to get into linking mode
with a valid obj file on the command-line. Using clang-cl for this,
which targets win32, caused problems on some buildbots, so just
use regular clang.

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

11 years agoclang-cl: ignore compile-only options in link-only invocations.
Hans Wennborg [Tue, 17 Sep 2013 00:03:41 +0000 (00:03 +0000)]
clang-cl: ignore compile-only options in link-only invocations.

Previously we would warn about unused arguments such as /MD when linking.
Clang already has logic to ignore compile-only options, e.g. for -D and -U.
This patch extends that to include clang-cl's compile-only options too.

Also, some clang-cl options should always be ignored. Doing this earlier
means they get ignored both for compilation and link-only invocations.

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

11 years agoffreestanding shouldn't effect main() on win32
David Majnemer [Mon, 16 Sep 2013 23:59:35 +0000 (23:59 +0000)]
ffreestanding shouldn't effect main() on win32

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

11 years agoclang-cl: ignore all /w<foo> options
Hans Wennborg [Mon, 16 Sep 2013 23:11:56 +0000 (23:11 +0000)]
clang-cl: ignore all /w<foo> options

We previously ignored /wd<n>, but I think we can ignore the rest too.

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

11 years ago[-cxx-abi microsoft] Correctly identify Win32 entry points
David Majnemer [Mon, 16 Sep 2013 22:44:20 +0000 (22:44 +0000)]
[-cxx-abi microsoft] Correctly identify Win32 entry points

Summary:
This fixes several issues with the original implementation:
- Win32 entry points cannot be in namespaces
- A Win32 entry point cannot be a function template, diagnose if we it.
- Win32 entry points cannot be overloaded.
- Win32 entry points implicitly return, similar to main.

Reviewers: rnk, rsmith, whunt, timurrrr

Reviewed By: rnk

CC: cfe-commits, nrieck
Differential Revision: http://llvm-reviews.chandlerc.com/D1683

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

11 years agoMove the uninitialized field check to after all the field initializers are added
Richard Trieu [Mon, 16 Sep 2013 21:54:53 +0000 (21:54 +0000)]
Move the uninitialized field check to after all the field initializers are added
to the CXXConstructorDecl so that information from the constructor can be used.

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

11 years agoEmit an error when attempting to generate IR for SEH __try
Reid Kleckner [Mon, 16 Sep 2013 21:46:30 +0000 (21:46 +0000)]
Emit an error when attempting to generate IR for SEH __try

Currently we silently omit the code in the try and finally bodies, which
is pretty bad.  This way we fail loudly.

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

11 years agoAdd some missing ProhibitAttributes calls to some declaration-like #pragmas.
Richard Smith [Mon, 16 Sep 2013 21:17:44 +0000 (21:17 +0000)]
Add some missing ProhibitAttributes calls to some declaration-like #pragmas.

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

11 years agoPass additional information around the uninitialized field visitor.
Richard Trieu [Mon, 16 Sep 2013 20:46:50 +0000 (20:46 +0000)]
Pass additional information around the uninitialized field visitor.

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

11 years agoWhen in pre-c++11 mode, treat _T("xxx") as a single string literal, repeat the _T...
Alexander Kornienko [Mon, 16 Sep 2013 20:20:49 +0000 (20:20 +0000)]
When in pre-c++11 mode, treat _T("xxx") as a single string literal, repeat the _T() part around each fragment. This addresses http://llvm.org/PR17122

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits, klimek, rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D1640

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

11 years agoUpdated the way the ownership attributes are semantically diagnosed. Added test...
Aaron Ballman [Mon, 16 Sep 2013 18:11:41 +0000 (18:11 +0000)]
Updated the way the ownership attributes are semantically diagnosed.  Added test cases for the semantics checks.

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

11 years agoAdd error checking to reject neon_vector_type attribute on targets without NEON.
Amara Emerson [Mon, 16 Sep 2013 18:07:35 +0000 (18:07 +0000)]
Add error checking to reject neon_vector_type attribute on targets without NEON.

Patch by Artyom Skrobov.

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

11 years agoNew message for cases when ownership is taken:
Anton Yartsev [Mon, 16 Sep 2013 17:51:25 +0000 (17:51 +0000)]
New message for cases when ownership is taken:
"+method_name: cannot take ownership of memory allocated by 'new'."
instead of the old
"Memory allocated by 'new' should be deallocated by 'delete', not +method_name"

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

11 years ago[libclang] Don't report a DecayedType as "unexposed", report it as the original ...
Argyrios Kyrtzidis [Mon, 16 Sep 2013 17:26:23 +0000 (17:26 +0000)]
[libclang] Don't report a DecayedType as "unexposed", report it as the original (as written) type.

Patch by Anders Waldenborg!

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

11 years agoAdd a define for the ObjFW runtime ABI version.
Benjamin Kramer [Mon, 16 Sep 2013 16:31:49 +0000 (16:31 +0000)]
Add a define for the ObjFW runtime ABI version.

This removes __has_feature(objc_msg_lookup_stret), as it is not required
anymore after this patch.

Patch by Jonathan Schleifer!

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

11 years ago[analyzer] scan-build: add missing semicolon
Jordan Rose [Mon, 16 Sep 2013 16:17:18 +0000 (16:17 +0000)]
[analyzer] scan-build: add missing semicolon

Patch by Kevin Zheng!

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

11 years agoHandle PredefinedExpr with templates and lambdas
Wei Pan [Mon, 16 Sep 2013 13:57:27 +0000 (13:57 +0000)]
Handle PredefinedExpr with templates and lambdas

Summary:

- lambdas, blocks or captured statements in templates were not
  handled which causes codegen crashes.

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

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

11 years agoMake F16C feature imply AVX. Matches GCC behavior.
Craig Topper [Mon, 16 Sep 2013 04:54:13 +0000 (04:54 +0000)]
Make F16C feature imply AVX. Matches GCC behavior.

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

11 years agoPrune "return" after llvm_unreachable(). It was redundant.
NAKAMURA Takumi [Mon, 16 Sep 2013 01:58:47 +0000 (01:58 +0000)]
Prune "return" after llvm_unreachable(). It was redundant.

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

11 years agoMake __has_extension(c_thread_local) work.
Ed Schouten [Sat, 14 Sep 2013 16:17:20 +0000 (16:17 +0000)]
Make __has_extension(c_thread_local) work.

Unlike C++11's "thread_local" keyword, C11's "_Thread_local" is in the
reserved namespace, meaning we provide it unconditionally; it is marked
as KEYALL in TokenKinds.def.

This means that like all the other C11 keywords, we can expose its
presence through __has_extension().

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

11 years agoAvoid getting an argument of allocation function if it does not exist.
Serge Pavlov [Sat, 14 Sep 2013 12:00:01 +0000 (12:00 +0000)]
Avoid getting an argument of allocation function if it does not exist.
This is a fix to PR12778: in erroneous code an allocation function
can be declared with no arguments, quering the first argument in this case
causes assertion violation.

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

11 years agoclang-format: Fix bug in style option AlwaysBreakTemplateDeclarations.
Daniel Jasper [Sat, 14 Sep 2013 08:13:22 +0000 (08:13 +0000)]
clang-format: Fix bug in style option AlwaysBreakTemplateDeclarations.

Before:
  template <template <typename>
            class Fooooooo, template <typename>
            class Baaaaaaar>
  struct C {};

After:
  template <template <typename> class Fooooooo,
            template <typename> class Baaaaaaar>
  struct C {};

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

11 years agoParse: Template specializations which aren't dependent needn't have their parsing...
David Majnemer [Sat, 14 Sep 2013 05:46:42 +0000 (05:46 +0000)]
Parse: Template specializations which aren't dependent needn't have their parsing be delayed

Summary:
We should treat a non-dependent template specialization like it wasn't
templated at all.

Reviewers: rsmith

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

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

11 years agoClean up some Triple usage in clang.
Cameron Esfahani [Sat, 14 Sep 2013 01:09:11 +0000 (01:09 +0000)]
Clean up some Triple usage in clang.

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

11 years ago[analyzer] Put more uniqueness in scan-build's temporary directory names.
Jordan Rose [Sat, 14 Sep 2013 00:41:32 +0000 (00:41 +0000)]
[analyzer] Put more uniqueness in scan-build's temporary directory names.

This is necessary when running two scan-build processes in parallel. The
directory naming scheme is now:

  yyyy-MM-dd-HHmmss-PID-N
  2013-09-13-174210-123-1

where "PID" is the scan-build process ID, and "N" is a sequential counter
(not likely to be needed now that seconds are mangled in, but just in case).

PR17196, using a suggested fix from Greg Czajkowski!

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

11 years agoAdd support for -ggnu-pubnames matching the llvm support.
Eric Christopher [Fri, 13 Sep 2013 22:37:55 +0000 (22:37 +0000)]
Add support for -ggnu-pubnames matching the llvm support.

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

11 years agoFix a comment.
Michael Han [Fri, 13 Sep 2013 22:24:50 +0000 (22:24 +0000)]
Fix a comment.

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

11 years agoLex and ignore Microsoft's #pragma warning(...)
Reid Kleckner [Fri, 13 Sep 2013 22:00:30 +0000 (22:00 +0000)]
Lex and ignore Microsoft's #pragma warning(...)

Summary:
This fixes PR17145 and avoids unknown pragma warnings.

This change does not attempt to map MSVC warning numbers to clang
warning flags.  Perhaps in the future we will implement a mapping for
some common subset of Microsoft warnings, but for now we don't.

Reviewers: rsmith

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

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

11 years agoPart three of PR15721: if we have an invalid CXXDefaultInitExpr, don't crash if
Richard Smith [Fri, 13 Sep 2013 20:51:45 +0000 (20:51 +0000)]
Part three of PR15721: if we have an invalid CXXDefaultInitExpr, don't crash if
we try to constant-evaluate it. Patch by Karthik Bhat, test by me.

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

11 years agovector_size cannot be applied to Booleans. Updated the semantic checking logic,...
Aaron Ballman [Fri, 13 Sep 2013 20:43:08 +0000 (20:43 +0000)]
vector_size cannot be applied to Booleans.  Updated the semantic checking logic, as well as the comment and added a test case.  Fixes PR12649

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

11 years agoSwitching the WeakRef attribute to using the new checkStringLiteralArgument helper...
Aaron Ballman [Fri, 13 Sep 2013 19:35:18 +0000 (19:35 +0000)]
Switching the WeakRef attribute to using the new checkStringLiteralArgument helper function.

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

11 years agoUpdate Atom Silvermont (SLM) support by adding enabled features.
Preston Gurd [Fri, 13 Sep 2013 19:27:17 +0000 (19:27 +0000)]
Update Atom Silvermont (SLM) support by adding enabled features.

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

11 years agoDebugInfo: omit debug info for friends
David Blaikie [Fri, 13 Sep 2013 18:45:00 +0000 (18:45 +0000)]
DebugInfo: omit debug info for friends

GCC ToT doesn't do this & it's worth about 3.2% on Clang's DWO file size
with Clang. Some or all of this may be due to things like r190715 which
could have source fixes/improvements, but it's not clear that's the case
and that doesn't help other source bases.

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

11 years agoRemove unnecessary inclusion of Sema.h
David Blaikie [Fri, 13 Sep 2013 18:32:52 +0000 (18:32 +0000)]
Remove unnecessary inclusion of Sema.h

Let me tell you a tale...

Within some twisted maze of debug info I've ended up implementing an
insane man's Include What You Use device. When the debugger emits debug
info it really shouldn't, I find out why & then realize the code could
be improved too.

In this instance CIndexDiagnostics.cpp had a lot more debug info with
Clang than GCC. Upon inspection a major culprit was all the debug info
describing clang::Sema. This was emitted because clang::Sema is
befriended by DiagnosticEngine which was rightly required, but GCC
doesn't emit debug info for friends so it never emitted anything for
Clang. Clang does emit debug info for friends (will be fixed/changed to
reduce debug info size).

But why didn't Clang just emit a declaration of Sema if this entire TU
didn't require a definition?

1) Diagnostic.h did the right thing, only using a declaration of Sema
and not including Sema.h at all.
2) Some other dependency of CIndexDiagnostics.cpp didn't do the right
thing. ASTUnit.h, only needing a declaration, still included Sema.h
(hence this commit which removes that include and adds the necessary
includes to the cpp files that were relying on this)
3) -flimit-debug-info didn't save us because of
EnterExpressionEvaluationContext, defined inline in Sema.h which fires
the "requiresCompleteType" check/flag (since it uses nested types from
Sema and calls Sema member functions) and thus, if debug info is ever
emitted for the type, the whole type is emitted and not just a
declaration.

Improving -flimit-debug-info to account for this would be... hard.
Modifying the code so that's not 'required to be complete' might be
possible, but probably only by moving EnterExpressionEvaluationContext
either into Sema, or out of Sema.h. That might be a bit too much of a
contortion to be bothered with.

Also, this is only one of the cases where emitting debug info for
friends caused us to emit a lot more debug info (this change reduces
Clang's DWO size by 0.93%, dropping friends entirely reduces debug info
by 3.2%) - I haven't hunted down the other cases, but I assume they
might be similar (Sema or something like it). IWYU or a similar tool
might help us reduce build times a bit, but analyzing debug info to find
these differences isn't worthwhile. I'll take the 3.2% win, provide this
small improvement to the code itself, and move on.

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

11 years agoFix indentation of closing };
David Blaikie [Fri, 13 Sep 2013 17:56:13 +0000 (17:56 +0000)]
Fix indentation of closing };

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

11 years agoUpdated the PCS calling convention to use the new checkStringLiteralArgument helper...
Aaron Ballman [Fri, 13 Sep 2013 17:48:25 +0000 (17:48 +0000)]
Updated the PCS calling convention to use the new checkStringLiteralArgument helper function.

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

11 years agoAs Aaron pointed out it's simpler to reject wide string availability attr messages...
Benjamin Kramer [Fri, 13 Sep 2013 17:31:48 +0000 (17:31 +0000)]
As Aaron pointed out it's simpler to reject wide string availability attr messages in the parser.

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

11 years agoASTContext.cpp: Fix a warning in r190684. [-Wcovered-switch-default]
NAKAMURA Takumi [Fri, 13 Sep 2013 17:12:09 +0000 (17:12 +0000)]
ASTContext.cpp: Fix a warning in r190684. [-Wcovered-switch-default]

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

11 years agoMoving Cortex-R cores to armv7r arch
Renato Golin [Fri, 13 Sep 2013 17:02:59 +0000 (17:02 +0000)]
Moving Cortex-R cores to armv7r arch

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

11 years agoAdd more Cortex CPUs and tests
Renato Golin [Fri, 13 Sep 2013 17:02:54 +0000 (17:02 +0000)]
Add more Cortex CPUs and tests

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

11 years agoFix Neon detection for Cortex-A class, plus adds some more CPUs to default features
Renato Golin [Fri, 13 Sep 2013 17:02:45 +0000 (17:02 +0000)]
Fix Neon detection for Cortex-A class, plus adds some more CPUs to default features

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

11 years agoGuard availability and thread safety attributes against wide strings.
Benjamin Kramer [Fri, 13 Sep 2013 16:30:12 +0000 (16:30 +0000)]
Guard availability and thread safety attributes against wide strings.

Found by inspection.

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

11 years agoUnify handling of string literal arguments for attributes and add fixits.
Benjamin Kramer [Fri, 13 Sep 2013 15:35:43 +0000 (15:35 +0000)]
Unify handling of string literal arguments for attributes and add fixits.

This fixes a couple of latent crashes for invalid attributes and also adds a
fixit hint to turn identifiers into string literals if one was expected. It then
proceeds recovery as if the identifier was a literal. Diagnostic locations are
also changed to point at the literal instead of the attribute if the error
concerns the argument. PR17175.

For example:
hidden.c:1:40: error: 'visibility' attribute requires a string
extern int x __attribute__((visibility(hidden)));
                                       ^
                                       "     "
hidden.c:2:29: error: visibility does not match previous declaration
extern int x __attribute__((visibility("default")));
                            ^
hidden.c:1:29: note: previous attribute is here
extern int x __attribute__((visibility(hidden)));
                            ^

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

11 years ago[ARMv8] Change the naming of some options to be more consistent.
Joey Gouly [Fri, 13 Sep 2013 13:48:33 +0000 (13:48 +0000)]
[ARMv8] Change the naming of some options to be more consistent.

Clang side changes for LLVM r190692.

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

11 years agoclang-format: Add -assume-filename option for editor integrations.
Daniel Jasper [Fri, 13 Sep 2013 13:40:24 +0000 (13:40 +0000)]
clang-format: Add -assume-filename option for editor integrations.

With -style=file, clang-format now starts to search for a .clang-format
file starting at the file given with -assume-filename if it reads from
stdin. Otherwise, it would start searching from the current directory,
which is not helpful for editor integrations.

Also changed vim, emacs and sublime integrations to actually make use of
this flag.

This fixes llvm.org/PR17072.

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

11 years agoAdded missing field comparisons to the FormatStyle::operator==
Alexander Kornienko [Fri, 13 Sep 2013 12:54:40 +0000 (12:54 +0000)]
Added missing field comparisons to the FormatStyle::operator==

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

11 years agoA buildbot compiling with strict error on unused variables pointed out a
David Tweed [Fri, 13 Sep 2013 12:51:05 +0000 (12:51 +0000)]
A buildbot compiling with strict error on unused variables pointed out a
historical remnant in r190684; remove it.

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

11 years agoCertain multi-platform languages, such as OpenCL, have the concept of
David Tweed [Fri, 13 Sep 2013 12:04:22 +0000 (12:04 +0000)]
Certain multi-platform languages, such as OpenCL, have the concept of
address spaces which is both (1) a "semantic" concept and
(2) possibly a hardware level restriction. It is desirable to
be able to discard/merge the LLVM-level address spaces on arguments for which
there is no difference to the current backend while keeping
track of the semantic address spaces in a funciton prototype. To do this
enable addition of the address space into the name-mangling process. Add
some tests to document this behaviour against inadvertent changes.

Patch by Michele Scandale!

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

11 years agoAdd "native" to config.available_features, to make it easier to disable non-x-compile...
Amaury de la Vieuville [Fri, 13 Sep 2013 11:02:31 +0000 (11:02 +0000)]
Add "native" to config.available_features, to make it easier to disable non-x-compile-safe tests

Patch by Artyom Skrobov!

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

11 years agoclang-format: Detect braced lists in subscript expressions.
Daniel Jasper [Fri, 13 Sep 2013 10:55:31 +0000 (10:55 +0000)]
clang-format: Detect braced lists in subscript expressions.

Before (even with Style.Cpp11BracedListStyle):
  f(MyMap[{ composite, key }]);

After:
  f(MyMap[{composite, key}]);

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

11 years ago[-cxx-abi microsoft] Mangle user defined entry points properly
David Majnemer [Fri, 13 Sep 2013 09:40:55 +0000 (09:40 +0000)]
[-cxx-abi microsoft] Mangle user defined entry points properly

Summary:
Functions named "main", "wmain", "WinMain", "wWinMain", and "DllMain"
are never mangled regardless of linkage, even when compiling for kernel
mode.
Depends on D1655

Reviewers: timurrrr, pcc, rnk, whunt

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

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

11 years agoclang-format: Fix incorrect enum parsing / layouting.
Daniel Jasper [Fri, 13 Sep 2013 09:20:45 +0000 (09:20 +0000)]
clang-format: Fix incorrect enum parsing / layouting.

Before:
  enum {
    Bar = Foo < int,
    int > ::value
  };

After:
  enum {
    Bar = Foo<int, int>::value
  };

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

11 years ago[-cxx-abi microsoft] Mangle declarations inside extern "C"
David Majnemer [Fri, 13 Sep 2013 09:03:14 +0000 (09:03 +0000)]
[-cxx-abi microsoft] Mangle declarations inside extern "C"

Summary:
This is a first step to getting extern "C" working properly inside
clang.  There are a number of quirks but mangling declarations inside
such a function are a good first step.

Reviewers: timurrrr, pcc, cdavis5x

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

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

11 years agoCHECK -> CHECK-DAG
David Majnemer [Fri, 13 Sep 2013 08:59:19 +0000 (08:59 +0000)]
CHECK -> CHECK-DAG

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

11 years agoRefactor the uninitialized field visitor. Also moved the calls to the visitor
Richard Trieu [Fri, 13 Sep 2013 03:20:53 +0000 (03:20 +0000)]
Refactor the uninitialized field visitor.  Also moved the calls to the visitor
later in the code so that the expressions will have addition processing first.
This catches a few additional cases of uninitialized uses of class fields.

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

11 years agoDocumentation: Doxygen-ification of existing docs for Sema/DelayedDiagnostic.h.
James Dennett [Fri, 13 Sep 2013 02:58:19 +0000 (02:58 +0000)]
Documentation: Doxygen-ification of existing docs for Sema/DelayedDiagnostic.h.

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

11 years agoDocumentation cleanup: Fixing \brief comments, migrating away from old style
James Dennett [Fri, 13 Sep 2013 02:46:09 +0000 (02:46 +0000)]
Documentation cleanup: Fixing \brief comments, migrating away from old style
that duplicated the name of the entity being documented at the start of its
comment, and other minor tidyups.

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

11 years agoFix two incorrect comments.
Jordan Rose [Fri, 13 Sep 2013 00:45:22 +0000 (00:45 +0000)]
Fix two incorrect comments.

Patch by Jared Grubb!

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

11 years ago[analyzer] Fix copy-paste error in internal docs.
Jordan Rose [Fri, 13 Sep 2013 00:44:57 +0000 (00:44 +0000)]
[analyzer] Fix copy-paste error in internal docs.

Patch by Jared Grubb!

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

11 years ago[analyzer] Run post-stmt checks for DeclStmt.
Jordan Rose [Fri, 13 Sep 2013 00:44:47 +0000 (00:44 +0000)]
[analyzer] Run post-stmt checks for DeclStmt.

No tests because no in-tree checkers use this, but that shouldn't stop
out-of-tree checkers.

Found by Aemon Cannon!

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

11 years agoRestore the sqrt -> llvm.sqrt mapping in fast-math mode
Hal Finkel [Thu, 12 Sep 2013 23:57:55 +0000 (23:57 +0000)]
Restore the sqrt -> llvm.sqrt mapping in fast-math mode

This restores the sqrt -> llvm.sqrt mapping, but only in fast-math mode
(specifically, when the UnsafeFPMath or NoNaNsFPMath CodeGen options are
enabled). The @llvm.sqrt* intrinsics have slightly different semantics from the
libm call, specifically, they are undefined when given a non-zero negative
number (the libm calls will always return NaN for any negative number).

This mapping was removed in r100613, and replaced with a TODO, but at that time
the fast-math flags were not yet implemented. Now that we have these, restoring
this mapping is important because it will enable autovectorization of sqrt
calls in loops (at least in fast-math mode).

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

11 years agoFix typo in llvm_unreachable string.
Nick Lewycky [Thu, 12 Sep 2013 23:36:08 +0000 (23:36 +0000)]
Fix typo in llvm_unreachable string.

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

11 years agoPR13657 (and duplicates):
Richard Smith [Thu, 12 Sep 2013 23:28:08 +0000 (23:28 +0000)]
PR13657 (and duplicates):

When a comma occurs in a default argument or default initializer within a
class, disambiguate whether it is part of the initializer or whether it ends
the initializer.

The way this works (which I will be proposing for standardization) is to treat
the comma as ending the default argument or default initializer if the
following token sequence matches the syntactic constraints of a
parameter-declaration-clause or init-declarator-list (respectively).

This is both consistent with the disambiguation rules elsewhere (where entities
are treated as declarations if they can be), and should have no regressions
over our old behavior. I think it might also disambiguate all cases correctly,
but I don't have a proof of that.

There is an annoyance here: because we're performing a tentative parse in a
situation where we may not have seen declarations of all relevant entities (if
the comma is part of the initializer, lookup may find entites declared later in
the class), we need to turn off typo-correction and diagnostics during the
tentative parse, and in the rare case that we decide the comma is part of the
initializer, we need to revert all token annotations we performed while
disambiguating.

Any diagnostics that occur outside of the immediate context of the tentative
parse (for instance, if we trigger the implicit instantiation of a class
template) are *not* suppressed, mirroring the usual rules for a SFINAE context.

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

11 years agoFix regression from r190427.
Eli Friedman [Thu, 12 Sep 2013 22:36:24 +0000 (22:36 +0000)]
Fix regression from r190427.

<rdar://problem/14970968>

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

11 years agoAdd a test case to test RAV visits parameters of implicit copy constructor.
Michael Han [Thu, 12 Sep 2013 20:59:33 +0000 (20:59 +0000)]
Add a test case to test RAV visits parameters of implicit copy constructor.

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

11 years agoPR16054: Slight strengthening for -Wsometimes-uninitialized: if we use a
Richard Smith [Thu, 12 Sep 2013 18:49:10 +0000 (18:49 +0000)]
PR16054: Slight strengthening for -Wsometimes-uninitialized: if we use a
variable uninitialized every time we reach its (reachable) declaration, or
every time we call the surrounding function, promote the warning from
-Wmaybe-uninitialized to -Wsometimes-uninitialized.

This is still slightly weaker than desired: we should, in general, warn
if a use is uninitialized the first time it is evaluated.

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

11 years agoMove the execution code from Compilation::ExecuteCommand to Command::Execute
Hans Wennborg [Thu, 12 Sep 2013 18:35:08 +0000 (18:35 +0000)]
Move the execution code from Compilation::ExecuteCommand to Command::Execute

I think it makes sense that a Command knows how to execute itself.

There's no functionality change but i rewrote the code to avoid the manual
memory management of Argv.

My motivation for this is that I plan to subclass Command to build fall-back
functionality into clang-cl.

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

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

11 years agoMove Compilation::PrintJob and PrintDiagnosticJob into Job::Print.
Hans Wennborg [Thu, 12 Sep 2013 18:23:34 +0000 (18:23 +0000)]
Move Compilation::PrintJob and PrintDiagnosticJob into Job::Print.

This moves the code to Job.cpp, which seems like a more natural fit,
and replaces the "is this a JobList? is this a Command?" logic with
a virtual function call.

It also removes the code duplication between PrintJob and
PrintDiagnosticJob and simplifies the code a little.

There's no functionality change here, except that the Executable is
now always printed within quotes, whereas it would previously not be
quoted in crash reports, which I think was a bug.

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

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

11 years ago[CMake] Put controversial always-recheck-revision-number behind an option.
Jordan Rose [Thu, 12 Sep 2013 16:17:41 +0000 (16:17 +0000)]
[CMake] Put controversial always-recheck-revision-number behind an option.

CMake does not have the ability to perform actions before calculating
dependencies, so it can't know whether it needs to rebuild clangBasic
to update for a new revision number. CLANG_ALWAYS_CHECK_VC_REV (off by
default) will cause clangBasic to always be dirty by deleting the
generated SVNVersion.inc after use; otherwise, SVNVersion.inc will
always be updated, but only included in the final binary when clangBasic
is rebuilt.

It'd be great to find a better way to do this, but hopefully this is
still an improvement over the complete lack of version information before.

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

11 years agoFix the MCTargetAsmParser API change.
Joey Gouly [Thu, 12 Sep 2013 10:59:24 +0000 (10:59 +0000)]
Fix the MCTargetAsmParser API change.

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

11 years ago[libclang] In clang_getLocation, check that the provided line/column is valid.
Argyrios Kyrtzidis [Thu, 12 Sep 2013 01:10:36 +0000 (01:10 +0000)]
[libclang] In clang_getLocation, check that the provided line/column is valid.

rdar://14971432

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

11 years agoFix the end-location of a CXXTemporaryObjectExpr when it is created with a initialize...
Argyrios Kyrtzidis [Wed, 11 Sep 2013 23:23:27 +0000 (23:23 +0000)]
Fix the end-location of a CXXTemporaryObjectExpr when it is created with a initializer_list.

rdar://14887351

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

11 years ago[CMake] Fix repository version checking dependencies harder.
Jordan Rose [Wed, 11 Sep 2013 23:12:55 +0000 (23:12 +0000)]
[CMake] Fix repository version checking dependencies harder.

Just always regenerate SVNVersion.inc. Don't worry about it not changing.

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

11 years agoclang/test/FixIt/fixit-unicode-with-utf8-output.c: Remove XFAIL.
NAKAMURA Takumi [Wed, 11 Sep 2013 23:09:22 +0000 (23:09 +0000)]
clang/test/FixIt/fixit-unicode-with-utf8-output.c: Remove XFAIL.

It'd be another issue that the terminal and stdout(including redirects) with utf8. This test XPASSed on Win32, at least on Lit.

FYI, we don't use a triplet like "-win64" anywhere.

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

11 years ago[CMake] Always include the Clang repo version, just like the autoconf build.
Jordan Rose [Wed, 11 Sep 2013 22:46:46 +0000 (22:46 +0000)]
[CMake] Always include the Clang repo version, just like the autoconf build.

Now that LLVM's helper script GetSVN.cmake actually works consistently,
there's no reason not to use it. This does mean that the clangBasic target
is potentially always dirty, because CMake-generated projects do not
necessarily recalculate dependencies after running each target.

This should end the issues of the AST format changing and breaking old
module files; CMake-Clang should now detect that the version changed just
like Autoconf-Clang has.

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

11 years agoObjectiveC migration. NS_RETURNS_NOT_RETAINED is the default for
Fariborz Jahanian [Wed, 11 Sep 2013 22:46:09 +0000 (22:46 +0000)]
ObjectiveC migration. NS_RETURNS_NOT_RETAINED is the default for
unknown methods which return Cocoa objects. No need to annotate
such methods.

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

11 years agoclang-format: Fix bug in pointer detection
Daniel Jasper [Wed, 11 Sep 2013 20:37:10 +0000 (20:37 +0000)]
clang-format: Fix bug in pointer detection

Before:
  for (int i = 0; i* 2 < z; i *= 2) {}
After:
  for (int i = 0; i * 2 < z; i *= 2) {}

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

11 years agoTablegen now generates a StringSwitch for attributes containing enumeration arguments...
Aaron Ballman [Wed, 11 Sep 2013 19:47:58 +0000 (19:47 +0000)]
Tablegen now generates a StringSwitch for attributes containing enumeration arguments to map strings to the proper enumeration value.  This makes error checking more consistent and reduces the amount of hand-written code required.

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

11 years agoObjectiveC migrator. Modify inferred property name
Fariborz Jahanian [Wed, 11 Sep 2013 18:27:16 +0000 (18:27 +0000)]
ObjectiveC migrator. Modify inferred property name
such that it does not lower case the staring property
name if getter name (after "get" prefix) starts with
two upper case letters.

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

11 years agoTest for correct usage of columnWidth in clang fixit hints.
Alexander Kornienko [Wed, 11 Sep 2013 18:10:30 +0000 (18:10 +0000)]
Test for correct usage of columnWidth in clang fixit hints.

Summary:
This test only works on systems capable of outputting UTF-8 encoded
text on the standard output (tested on linux and OS X, should XFAIL on windows,
if I haven't messed up the XFAIL line).

Reviewers: jordan_rose

Reviewed By: jordan_rose

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

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

11 years agoClarify the status of PowerPC support.
Roman Divacky [Wed, 11 Sep 2013 17:12:49 +0000 (17:12 +0000)]
Clarify the status of PowerPC support.

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

11 years agoObjectiveC migrator. methods which look like a getter and
Fariborz Jahanian [Wed, 11 Sep 2013 17:05:15 +0000 (17:05 +0000)]
ObjectiveC migrator. methods which look like a getter and
start with "get" are inferreed as a readonly properties.

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

11 years agoAdded regression tests.
Serge Pavlov [Wed, 11 Sep 2013 17:04:24 +0000 (17:04 +0000)]
Added regression tests.

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

11 years ago[analyzer] Handle zeroing constructors for fields of structs with empty bases.
Jordan Rose [Wed, 11 Sep 2013 16:46:50 +0000 (16:46 +0000)]
[analyzer] Handle zeroing constructors for fields of structs with empty bases.

RegionStore tries to protect against accidentally initializing the same
region twice, but it doesn't take subregions into account very well. If
the outer region being initialized is a struct with an empty base class,
the offset of the first field in the struct will be 0. When we initialize
the base class, we may invalidate the contents of the struct by providing
a default value of Unknown (or some new symbol). We then go to initialize
the member with a zeroing constructor, only to find that the region at
that offset in the struct already has a value. The best we can do here is
to invalidate that value and continue; neither the old default value nor
the new 0 is correct for the entire struct after the member constructor call.

The correct solution for this is to track region extents in the store.

<rdar://problem/14914316>

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

11 years agoclang-cl: Warn about overriding /MD with /MT etc.
Hans Wennborg [Wed, 11 Sep 2013 16:38:41 +0000 (16:38 +0000)]
clang-cl: Warn about overriding /MD with /MT etc.

This also bakes the /M options into a separate option group to make
them easier to refer to from the code.

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

11 years agoTeach RAV to visit parameter variable declarations of implicit functions. Fixes PR16182.
Michael Han [Wed, 11 Sep 2013 15:53:29 +0000 (15:53 +0000)]
Teach RAV to visit parameter variable declarations of implicit functions. Fixes PR16182.

Normally RAV visits parameter variable declarations of a function by traversing the TypeLoc of
the parameter declarations. However, for implicit functions, their parameters don't have any
TypeLoc, because they are implicit.

So for implicit functions, we visit their parameter variable declarations by traversing them through
the function declaration, and visit them accordingly.

Reviewed by Richard Smith and Manuel Klimek.

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

11 years agofix xcore-opts.c test
Robert Lytton [Wed, 11 Sep 2013 15:14:38 +0000 (15:14 +0000)]
fix xcore-opts.c test

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

11 years agoAdding some additional test cases for the cleanup attribute.
Aaron Ballman [Wed, 11 Sep 2013 13:43:47 +0000 (13:43 +0000)]
Adding some additional test cases for the cleanup attribute.

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

11 years agoFix 2 cases of uninitialized reads of an invalid PresumedLoc.
Evgeniy Stepanov [Wed, 11 Sep 2013 12:33:58 +0000 (12:33 +0000)]
Fix 2 cases of uninitialized reads of an invalid PresumedLoc.

The code in CGExpr was added back in 2012 (r165536) but not exercised in tests
until recently.

Detected on the MemorySanitizer bootstrap bot.

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

11 years agoSupport for CR LF newlines.
Alexander Kornienko [Wed, 11 Sep 2013 12:25:57 +0000 (12:25 +0000)]
Support for CR LF newlines.

Summary:
reformat() tries to determine the newline style used in the input
(either LF or CR LF), and uses it for the output. Maybe not every single case is
supported, but at least the bug described in http://llvm.org/PR17182 should be
resolved.

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1643

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