]> granicus.if.org Git - clang/log
clang
10 years agoGenerate code for the move assignment operator using memcpy, the same as we do
Nick Lewycky [Tue, 10 Sep 2013 05:14:39 +0000 (05:14 +0000)]
Generate code for the move assignment operator using memcpy, the same as we do
for the copy assignment operator.

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

10 years agoMake -Wunused warning rules more consistent.
Eli Friedman [Tue, 10 Sep 2013 03:05:56 +0000 (03:05 +0000)]
Make -Wunused warning rules more consistent.

This patch does a few different things.

This patch improves unused var diags for const vars: we no longer
unconditionally suppress diagnostics for const vars, instead only suppressing
the diagnostic when the declaration appears to be useful.

This patch also makes us more consistently use whether a variable/function
is declared in the main file to suppress diagnostics where appropriate.

Fixes <rdar://problem/14907887>.

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

10 years agoclang-cl: use -fdiagnostics-format=msvc by default
Hans Wennborg [Tue, 10 Sep 2013 01:07:07 +0000 (01:07 +0000)]
clang-cl: use -fdiagnostics-format=msvc by default

This allows for navigating to errors within the MSVC IDE by clicking
on the diagnostics.

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

10 years agoIgnore calling conventions when checking function template specializations
Reid Kleckner [Tue, 10 Sep 2013 01:04:45 +0000 (01:04 +0000)]
Ignore calling conventions when checking function template specializations

Summary:
Calling conventions are inherited during decl merging.  Before this
change, deduction would fail due to a type mismatch between the template
and the specialization.  This change adjusts the CCs to match before
deduction, and lets the decl merging logic diagnose mismatch or inherit
the CC from the template.

This allows specializations of static member function templates in the
Microsoft C++ ABI.

Reviewers: rsmith

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

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

10 years agoObjectiveC migrator. Do not infer NS_RETURNS_INNER_POINTER
Fariborz Jahanian [Mon, 9 Sep 2013 23:56:14 +0000 (23:56 +0000)]
ObjectiveC migrator. Do not infer NS_RETURNS_INNER_POINTER
annotation on methods which return typedef of pointer to
an incomplete struct type.

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

10 years agoAttempting to unbreak the makefile-base builds.
Aaron Ballman [Mon, 9 Sep 2013 23:50:01 +0000 (23:50 +0000)]
Attempting to unbreak the makefile-base builds.

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

10 years agoAdding a FIXME based on feedback from Richard Smith.
Aaron Ballman [Mon, 9 Sep 2013 23:40:31 +0000 (23:40 +0000)]
Adding a FIXME based on feedback from Richard Smith.

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

10 years agoAttribute tablegen now understands that attribute arguments can be optional. This...
Aaron Ballman [Mon, 9 Sep 2013 23:33:17 +0000 (23:33 +0000)]
Attribute tablegen now understands that attribute arguments can be optional.  This allows for automated checking of the number of arguments expected vs number of arguments given for attributes.  Greatly reduces the amount of manual checking required.

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

10 years agoFix a crash introduced in r189828.
Matt Beaumont-Gay [Mon, 9 Sep 2013 21:07:58 +0000 (21:07 +0000)]
Fix a crash introduced in r189828.

The predicates in CXXRecordDecl which test various properties of special
members can't be called on incomplete decls.

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

10 years agoModern ObjectiveC translator. Fix translation of
Fariborz Jahanian [Mon, 9 Sep 2013 19:59:59 +0000 (19:59 +0000)]
Modern ObjectiveC translator. Fix translation of
message sent to aggregate-valued methods. Fix
visibility of trampoline type used in translation
of such expressions.  // rdar://14932320

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

10 years ago[docs] Prominently note modules are experimental.
Sean Silva [Mon, 9 Sep 2013 19:57:49 +0000 (19:57 +0000)]
[docs] Prominently note modules are experimental.

It was really hard to tell that modules are experimental. This makes it
really clear by

* Noting the experimental status in the title.
* Moving the "warning" above the table of contents.

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

10 years ago[docs] End users should see just "Clang"
Sean Silva [Mon, 9 Sep 2013 19:50:47 +0000 (19:50 +0000)]
[docs] End users should see just "Clang"

Half the internet has wildly incorrect ideas about what LLVM is (in
particular, many get the impression that LLVM is some magical
cross-platform runtime), so saying "LLVM" near "cross-compilation" in a
user-facing doc might provoke confusion.

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

10 years ago[docs] Fix Sphinx toctree warning.
Sean Silva [Mon, 9 Sep 2013 19:50:46 +0000 (19:50 +0000)]
[docs] Fix Sphinx toctree warning.

Last I heard LSan is getting close to prime-time, but for now keep
LeakSanitizer.rst hidden (especially since it contains so little
content).

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

10 years ago[docs] Fix some finicky Sphinx warnings.
Sean Silva [Mon, 9 Sep 2013 19:50:40 +0000 (19:50 +0000)]
[docs] Fix some finicky Sphinx warnings.

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

10 years ago[docs] Typographical and rewording fixes.
Sean Silva [Mon, 9 Sep 2013 19:30:44 +0000 (19:30 +0000)]
[docs] Typographical and rewording fixes.

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

10 years agoclang-cl: parse (but don't support) the /o flag
Hans Wennborg [Mon, 9 Sep 2013 19:04:49 +0000 (19:04 +0000)]
clang-cl: parse (but don't support) the /o flag

Apparently folks run into this (PR17097). The flag is not supported by
MSVC either, but we should parse it so we don't get confused when it occurs.

This changes the clang-cl output for "clang-cl /c /o foo.obj" from:

  clang-cl.exe: error: no such file or directory: '/o'
  clang-cl.exe: error: no such file or directory: 'foo.obj'

to:

  clang-cl.exe: warning: argument unused during compilation: '/o bajs.obj'

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

10 years agoMove checker downloads to llvm.org.
Ted Kremenek [Mon, 9 Sep 2013 17:19:27 +0000 (17:19 +0000)]
Move checker downloads to llvm.org.

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

10 years agoC++ modules: if a class is defined in multiple modules (for instance, because
Richard Smith [Mon, 9 Sep 2013 16:55:27 +0000 (16:55 +0000)]
C++ modules: if a class is defined in multiple modules (for instance, because
it is an implicit instantiation of a class template specialization), pick the
first-loaded definition to be the canonical definition, and merge all other
definitions into it.

This is still rather incomplete -- we need to extend every form of declaration
that can appear within a CXXRecordDecl to be redeclarable if it came from an
AST file (this includes fields, enumerators, ...).

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

10 years agoCGDebugInfo: Hoist string allocation in a helper function. No functionality change.
Benjamin Kramer [Mon, 9 Sep 2013 16:39:06 +0000 (16:39 +0000)]
CGDebugInfo: Hoist string allocation in a helper function. No functionality change.

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

10 years agoSema: Don't crash on visibility attributes with an identifier argument.
Benjamin Kramer [Mon, 9 Sep 2013 15:08:57 +0000 (15:08 +0000)]
Sema: Don't crash on visibility attributes with an identifier argument.

PR17105.

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

10 years agoFix constructor-related typos.
Benjamin Kramer [Mon, 9 Sep 2013 14:48:42 +0000 (14:48 +0000)]
Fix constructor-related typos.

Noticed by Roman Divacky.

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

10 years agoSilencing an MSVC warning about an empty control statement (it dislikes ; but is...
Aaron Ballman [Mon, 9 Sep 2013 13:29:38 +0000 (13:29 +0000)]
Silencing an MSVC warning about an empty control statement (it dislikes ; but is fine with {}).

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

10 years agoRemoving the endian attribute and updating associated test cases. This functionality...
Aaron Ballman [Mon, 9 Sep 2013 12:57:20 +0000 (12:57 +0000)]
Removing the endian attribute and updating associated test cases.  This functionality was never completely implemented, and this is an improvement over silently eating the attribute.

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

10 years agoCommit 190296 missed out the tests; add them now. Note that it actually tests
David Tweed [Mon, 9 Sep 2013 09:55:07 +0000 (09:55 +0000)]
Commit 190296 missed out the tests; add them now. Note that it actually tests
"long long" which is currently technically only "reserved for future" use in OpenCL, but
since clang in OpenCL mode supports it we may as well test the modifications to
the settings made for that type.

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

10 years agoThe OpenCL standard specifies the sizes and alignments of various types than other...
David Tweed [Mon, 9 Sep 2013 09:17:24 +0000 (09:17 +0000)]
The OpenCL standard specifies the sizes and alignments of various types than other C-family
languages, as well as specifying errno is not set by the math functions. Make the
clang front-end set those appropriately when the OpenCL language option is set.

Patch by Erik Schnetter!

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

10 years agoAdditional fix for PR16752 and for commit 190044:
Stepan Dyatkovskiy [Mon, 9 Sep 2013 07:46:54 +0000 (07:46 +0000)]
Additional fix for PR16752 and for commit 190044:
-- For TargetInfo::getRealTypeByWidth also added support for IEEEQuad float type.

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

10 years agoC++ modules: fix a bug where loading a declaration with some name would prevent
Richard Smith [Mon, 9 Sep 2013 07:34:56 +0000 (07:34 +0000)]
C++ modules: fix a bug where loading a declaration with some name would prevent
name lookup from lazily deserializing the other declarations with the same
name, by tracking a bit to indicate whether a name in a DeclContext might have
additional external results. This also allows lazier reconciling of the lookup
table if a module import adds decls to a pre-existing DC.

However, this exposes a pre-existing bug, which causes a regression in
test/Modules/decldef.mm: if we have a reference to a declaration, and a
later-imported module adds a redeclaration, nothing causes us to load that
redeclaration when we use or emit the reference (which can manifest as a
reference to an undefined inline function, a use of an incomplete type, and so
on). decldef.mm has been extended with an additional testcase which fails with
or without this change.

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

10 years agoUpdate to the new API interface which requires the MCRegisterInfo object. <rdar:...
Bill Wendling [Mon, 9 Sep 2013 02:37:56 +0000 (02:37 +0000)]
Update to the new API interface which requires the MCRegisterInfo object. <rdar://problem/13623355>

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

10 years agoImplement aarch64 neon instruction set AdvSIMD (3V Diff), covering the following...
Jiangning Liu [Mon, 9 Sep 2013 02:21:08 +0000 (02:21 +0000)]
Implement aarch64 neon instruction set AdvSIMD (3V Diff), covering the following 26 instructions,

SADDL, UADDL, SADDW, UADDW, SSUBL, USUBL, SSUBW, USUBW, ADDHN, RADDHN, SABAL, UABAL, SUBHN, RSUBHN, SABDL, UABDL, SMLAL, UMLAL, SMLSL, UMLSL, SQDMLAL, SQDMLSL, SMULL, UMULL, SQDMULL, PMULL

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

10 years agoAdding cross-compilation instructions to Clang
Renato Golin [Sun, 8 Sep 2013 20:44:39 +0000 (20:44 +0000)]
Adding cross-compilation instructions to Clang

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

10 years agoclang-format: Keep empty lines and format 1-line nested blocks.
Daniel Jasper [Sun, 8 Sep 2013 14:07:57 +0000 (14:07 +0000)]
clang-format: Keep empty lines and format 1-line nested blocks.

Let clang-format consistently keep up to one empty line (configured via
FormatStyle::MaxEmptyLinesToKeep) in nested blocks, e.g. lambdas. Also,
actually format single statements in nested blocks.

Before:
  DEBUG({ int     i; });
  DEBUG({
    int i;
    // an empty line here would just be removed.
    int j;
  });

After:
  DEBUG({ int i; });
  DEBUG({
    int i;

    int j;
  });

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

10 years agoDebug Info: pass in DIScope instead of DIDescriptor in createFieldType.
Manman Ren [Sun, 8 Sep 2013 03:45:05 +0000 (03:45 +0000)]
Debug Info: pass in DIScope instead of DIDescriptor in createFieldType.

Improve readability. No functionality change.

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

10 years agoCorrect typo.
David Majnemer [Sat, 7 Sep 2013 20:21:47 +0000 (20:21 +0000)]
Correct typo.

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

10 years agoFixed bug in call to CXXTemporaryObjectExpr ctor.
Enea Zaffanella [Sat, 7 Sep 2013 11:22:02 +0000 (11:22 +0000)]
Fixed bug in call to CXXTemporaryObjectExpr ctor.

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

10 years agoadd OCLint to the list of projects based on clang
Sylvestre Ledru [Sat, 7 Sep 2013 07:59:01 +0000 (07:59 +0000)]
add OCLint to the list of projects based on clang

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

10 years agoadd he 'include what you use' project
Sylvestre Ledru [Sat, 7 Sep 2013 07:56:03 +0000 (07:56 +0000)]
add he 'include what you use' project

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

10 years agoremove the description about clang & llvm in the freebsd section (the reader probably...
Sylvestre Ledru [Sat, 7 Sep 2013 07:52:20 +0000 (07:52 +0000)]
remove the description about clang & llvm in the freebsd section (the reader probably know what are llvm and clang

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

10 years agoabout the debian effort to rebuild the archive with clang
Sylvestre Ledru [Sat, 7 Sep 2013 07:51:23 +0000 (07:51 +0000)]
about the debian effort to rebuild the archive with clang

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

10 years agoClang event are now part of the llvm events. Add a link to the LLVM events
Sylvestre Ledru [Sat, 7 Sep 2013 07:39:49 +0000 (07:39 +0000)]
Clang event are now part of the llvm events. Add a link to the LLVM events

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

10 years agoUpdate the link to the current code coverage reports (the previous one has not been...
Sylvestre Ledru [Sat, 7 Sep 2013 07:37:18 +0000 (07:37 +0000)]
Update the link to the current code coverage reports (the previous one has not been updated since february 2010) + remove the spec references, not updated since May 2010

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

10 years ago'return' before 'else' is bad style
David Majnemer [Sat, 7 Sep 2013 07:11:04 +0000 (07:11 +0000)]
'return' before 'else' is bad style

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

10 years agoAST: __uuidof should leak through templated types
David Majnemer [Sat, 7 Sep 2013 06:59:46 +0000 (06:59 +0000)]
AST: __uuidof should leak through templated types

Summary:
__uuidof on templated types should exmaine if any of its template
parameters have a uuid declspec.  If exactly one does, then take it.
Otherwise, issue an appropriate error.

Reviewers: rsmith, thakis, rnk

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

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

10 years agoFix missing source location in CXXTemporaryObjectExpr nodes.
Enea Zaffanella [Sat, 7 Sep 2013 05:49:53 +0000 (05:49 +0000)]
Fix missing source location in CXXTemporaryObjectExpr nodes.
For clarity, renamed (get/set)ParenRange as (get/set)ParenOrBraceRange
in CXXConstructExpr nodes.
Added testcase.

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

10 years agoObjectiveC migrator: When inferring a property,
Fariborz Jahanian [Fri, 6 Sep 2013 23:45:20 +0000 (23:45 +0000)]
ObjectiveC migrator: When inferring a property,
preserve getter's attribute. Also, do not attach
an inferred NS_RETURNS_INNER_POINTER to the inferred
property (it is illegal).

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

10 years agoReorder libm LIBBUILTIN definition groups
Hal Finkel [Fri, 6 Sep 2013 23:45:10 +0000 (23:45 +0000)]
Reorder libm LIBBUILTIN definition groups

The groups of libm LIBBUILTIN definitions are reordered to match the order of
the corresponding __builtin_* definitions (which occur earlier in the
Builtins.def file).

No functionality change intended.

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

10 years agoReorder libm LIBBUILTIN definitions
Hal Finkel [Fri, 6 Sep 2013 23:23:53 +0000 (23:23 +0000)]
Reorder libm LIBBUILTIN definitions

The libm LIBBUILTIN definitions are reordered to the canonical (and
alphabetical) double (''), float ('f'), long double ('l') ordering.

No functionality change intended.

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

10 years agoAdd the missing "n" to libm LIBBUILTIN definitions
Hal Finkel [Fri, 6 Sep 2013 23:23:32 +0000 (23:23 +0000)]
Add the missing "n" to libm LIBBUILTIN definitions

The libm math functions should be marked with the "n" (nothrow) flag so that
the corresponding IR function declarations are tagged with the nounwind
attribute (this has been true in C mode, but not in C++ mode).

The test case has been updated to run in C++ mode in addition to in C mode.

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

10 years agoRemove error-prone 'list initialization' flag from an implicit conversion
Richard Smith [Fri, 6 Sep 2013 22:30:28 +0000 (22:30 +0000)]
Remove error-prone 'list initialization' flag from an implicit conversion
sequence. All that matters here is whether we're doing the
std::initializer_list special case thing.

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

10 years agoclang-format: Fix regression introduced by r190038.
Daniel Jasper [Fri, 6 Sep 2013 21:46:41 +0000 (21:46 +0000)]
clang-format: Fix regression introduced by r190038.

Before:
  Constructor()
      : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbbbbb(b) {
                                 }
After:
  Constructor()
      : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbbbbb(b) {
  }

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

10 years agoclang-format: Format typed enums with nested names.
Daniel Jasper [Fri, 6 Sep 2013 21:32:35 +0000 (21:32 +0000)]
clang-format: Format typed enums with nested names.

The explicit type specified for an enum can actually have a nested name
specifier.

This fixes llvm.org/PR17125.

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

10 years agoclang-format: Don't confuse operator[] with lambdas.
Daniel Jasper [Fri, 6 Sep 2013 21:25:51 +0000 (21:25 +0000)]
clang-format: Don't confuse operator[] with lambdas.

Before:
  double &operator[](int i) { return 0; } int i;

After:
  double &operator[](int i) { return 0; }
  int i;

This fixes llvm.org/PR17134.

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

10 years agoPreserve exception specs in function decl merging.
Eli Friedman [Fri, 6 Sep 2013 21:09:09 +0000 (21:09 +0000)]
Preserve exception specs in function decl merging.

Exception specs are not part of the canonical type, but we shouldn't
drop them just because we merged a noreturn attribute.

Fixes PR17110.

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

10 years agoUnbreak the Clang -Werror build after r190183.
David Blaikie [Fri, 6 Sep 2013 20:58:25 +0000 (20:58 +0000)]
Unbreak the Clang -Werror build after r190183.

Best guess at the right answer here - no guarantees of fitness for any
particular purpose.

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

10 years agoclang-cl: ignore /RTC options (PR17129)
Hans Wennborg [Fri, 6 Sep 2013 20:26:25 +0000 (20:26 +0000)]
clang-cl: ignore /RTC options (PR17129)

I don't think Clang intends to implement this functionality.
ASan should be used instead. Since /RTC is often passed by default
from MSBuild, ignore the option to avoid bloating the output.

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

10 years agoAdd Intrin.h to the cmake files.
Eric Christopher [Fri, 6 Sep 2013 20:11:28 +0000 (20:11 +0000)]
Add Intrin.h to the cmake files.

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

10 years agoDebug Info: Update testing case.
Manman Ren [Fri, 6 Sep 2013 18:46:30 +0000 (18:46 +0000)]
Debug Info: Update testing case.

DIBuilder now uses an identifier to reference DIType in containing type field of
a DICompositeType (in r190190).

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

10 years agoOpenMP: Data-sharing attributes analysis and clause 'shared' (fixed test threadprivat...
Alexey Bataev [Fri, 6 Sep 2013 18:03:48 +0000 (18:03 +0000)]
OpenMP: Data-sharing attributes analysis and clause 'shared' (fixed test threadprivate_messages.cpp)

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

10 years agoDon't remove trailing escaped newline from line comments.
Alexander Kornienko [Fri, 6 Sep 2013 17:24:54 +0000 (17:24 +0000)]
Don't remove trailing escaped newline from line comments.

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

10 years agoRemove unused method Job::AddCommand.
Hans Wennborg [Fri, 6 Sep 2013 16:48:57 +0000 (16:48 +0000)]
Remove unused method Job::AddCommand.

I was going to update the comment referring to PipedJob, which was removed
some time ago, but then it turned out that this method is not actually used
at all.

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

10 years ago[analyzer] SATestBuild: strip trailing newlines from command file.
Jordan Rose [Fri, 6 Sep 2013 16:12:41 +0000 (16:12 +0000)]
[analyzer] SATestBuild: strip trailing newlines from command file.

When running a make-based command, SATestBuild tries to append a -jN flag
with an appropriate N to run the build in parallel. However, it failed
to take into account that each line read includes a trailing newline
(unless it is the last line of a file without a trailing newline), which
resulted in the "-jN" appearing on a line on its own.

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

10 years agoFollow up on commit r190159. Also test the KFreeBSD i686 platform defines + minor...
Sylvestre Ledru [Fri, 6 Sep 2013 15:36:36 +0000 (15:36 +0000)]
Follow up on commit r190159. Also test the KFreeBSD i686 platform defines + minor cosmetics

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

10 years agoAdd a test for the KFreeBSD define (#define __FreeBSD_kernel__ 1). This was introduce...
Sylvestre Ledru [Fri, 6 Sep 2013 14:53:07 +0000 (14:53 +0000)]
Add a test for the KFreeBSD define (#define __FreeBSD_kernel__ 1). This was introduced in commit r190048

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

10 years agoOpenCL allows the (pre/post)-(increment/decrement) operator on integer vector types,
David Tweed [Fri, 6 Sep 2013 09:58:08 +0000 (09:58 +0000)]
OpenCL allows the (pre/post)-(increment/decrement) operator on integer vector types,
so allow that case and add appropriate tests.

Patch by Ruiling Song!

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

10 years agoclang-format: Fix regression introduced by r189353.
Daniel Jasper [Fri, 6 Sep 2013 08:54:24 +0000 (08:54 +0000)]
clang-format: Fix regression introduced by r189353.

Before:
  FirstToken->WhitespaceRange.getBegin()
      .getLocWithOffset(First->LastNewlineOffset);

After:
  FirstToken->WhitespaceRange.getBegin().getLocWithOffset(
      First->LastNewlineOffset);

Re-add logic to prevent breaking after an empty set of parentheses.
Basically it seems that calling a function without parameters is more
like navigating along the same object than it is a separate step of a
builder-type call.

We might need to extends this in future to allow "short" parameters that
e.g. are an index accessing a specific element.

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

10 years agoAvoid double edges when constructing CFGs
Pavel Labath [Fri, 6 Sep 2013 08:12:48 +0000 (08:12 +0000)]
Avoid double edges when constructing CFGs

Summary:
If a noreturn destructor is executed while returning a value from a function,
the resulting CFG has had two edges to the exit block. This crashed the analyzer,
because it expects that blocks with no terminators have only one outgoing edge.
I added code to avoid creating the second edge in this case.

PS: The crashes did not manifest themselves always, as usually the
NoReturnFunctionChecker would stop program evaluation before the analyzer hit
the assertion, but in the case of lifetime extended temporaries, the checker
failed to do that (which is a separate bug in itself).

Reviewers: jordan_rose

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

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

10 years agoclang-format: Fix regression introduced by r189337.
Daniel Jasper [Fri, 6 Sep 2013 08:08:14 +0000 (08:08 +0000)]
clang-format: Fix regression introduced by r189337.

Before:
  if (aaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaa(
          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) == 5) ...

After:
  if (aaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaa(
          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
      == 5) ...

Also precompute startsBinaryExpression() to improve performance.

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

10 years agoclang-format: Fix comment formatting bugs in nested blocks.
Daniel Jasper [Fri, 6 Sep 2013 07:54:20 +0000 (07:54 +0000)]
clang-format: Fix comment formatting bugs in nested blocks.

This fixes two issues:
1) The indent of a line comment was not adapted to the subsequent
   statement as it would be outside of a nested block.
2) A missing DryRun flag caused actualy breaks to be inserted in
   overly long comments while trying to come up with the best line
   breaking decisions.

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

10 years agoPR17046, PR17092: Debug Info assert-on-valid due to member loss when context creation...
David Blaikie [Fri, 6 Sep 2013 06:45:04 +0000 (06:45 +0000)]
PR17046, PR17092: Debug Info assert-on-valid due to member loss when context creation recreates the item the context is created for

By removing the possibility of strange partial definitions with no
members that older GCC's produced for the otherwise unreferenced outer
types of referenced inner types, we can simplify debug info generation
and correct this bug. Newer (4.8.1 and ToT) GCC's don't produce this
quirky debug info, and instead produce the full definition for the outer
type (except in the case where that type is dynamic and its vtable is
not emitted in this TU).

During the creation of the context for a type, we may revisit that type
(due to the need to visit template parameters, among other things) and
used to end up visiting it first there. Then when we would reach the
original code attempting to define that type, we would lose debug info
by overwriting its members.

By avoiding the possibility of latent "defined with no members" types,
we can be sure than whenever we already have a type in a cache (either a
definition or declaration), we can just return that. In the case of a
full definition, our work is done. In the case of a partial definition,
we must already be in the process of completing it. And in the case of a
declaration, the completed/vtable/etc callbacks can handle converting it
to a definition.

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

10 years agoAdd self-comparison warnings for fields.
Eli Friedman [Fri, 6 Sep 2013 03:13:09 +0000 (03:13 +0000)]
Add self-comparison warnings for fields.

This expands very slightly what -Wtautological-compare considers to be
tautological to include implicit accesses to C++ fields and ObjC ivars.
I don't want to turn this into a full expression-identity check, but
these additions seem pretty well-contained, and maintain the theme
of checking for "x == x".

<rdar://problem/14431127>

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

10 years agoConsumed Analysis: The 'consumable' attribute now takes a identifier specifying the...
David Blaikie [Fri, 6 Sep 2013 01:28:43 +0000 (01:28 +0000)]
Consumed Analysis: The 'consumable' attribute now takes a identifier specifying the default assumed state for objects of this class

This information is used for return states and pass-by-value parameter
states.

Patch by Chris Wailes.

Review by DeLesley Hutchins and Aaron Ballman.

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

10 years agoWhen creating an implicit conversion sequence for a reference of type T from an
Richard Smith [Fri, 6 Sep 2013 01:22:42 +0000 (01:22 +0000)]
When creating an implicit conversion sequence for a reference of type T from an
initializer list containing a single element of type T, be sure to mark the
sequence as a list conversion sequence so that it is known to be worse than an
implicit conversion sequence that initializes a std::initializer_list object.

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

10 years agoReduce stack usage of TreeTransform.
Eli Friedman [Fri, 6 Sep 2013 01:13:30 +0000 (01:13 +0000)]
Reduce stack usage of TreeTransform.

Without this patch, TreeTransform::TransformExpr uses a ridiculous amount of
stack space (around 5000 bytes).  Preventing inlining brings the stack usage
down to something sane.

On a testcase I have, on my computer, this allows changing -ftemplate-depth
from 210 to around 750 before we crash.  I'm not sure I should commit the
testcase, though: I don't want to cause test failures on platforms with less
stack space available.

<rdar://problem/14098189>.

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

10 years agoC++11 attributes after 'constructor-name (' unambiguously signal that we have a
Richard Smith [Fri, 6 Sep 2013 00:12:20 +0000 (00:12 +0000)]
C++11 attributes after 'constructor-name (' unambiguously signal that we have a
constructor.

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

10 years agoImprove error for "override" + non-virtual func.
Eli Friedman [Thu, 5 Sep 2013 23:51:03 +0000 (23:51 +0000)]
Improve error for "override" + non-virtual func.

Consider something like the following:

struct X {
  virtual void foo(float x);
};
struct Y : X {
  void foo(double x) override;
};

The error is almost certainly that Y::foo() has the wrong signature,
rather than incorrect usage of the override keyword.  This patch
adds an appropriate diagnostic for that case.

Fixes <rdar://problem/14785106>.

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

10 years agoAdd a bit more info to modules fatal error.
Eli Friedman [Thu, 5 Sep 2013 23:50:58 +0000 (23:50 +0000)]
Add a bit more info to modules fatal error.

Just a minor tweak to make it easier to track down the cause of fatal errors
with modules.

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

10 years agoObjectiveC migrator: tighten the rules for when
Fariborz Jahanian [Thu, 5 Sep 2013 23:04:33 +0000 (23:04 +0000)]
ObjectiveC migrator: tighten the rules for when
inferring NS_RETURNS_RETAINED, etc., return annotations.
Do not infer if these annotations are implicit
from the naming convention. Also add inference for
NS_CONSUMES_SELF annotation.

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

10 years agomanual: Fix RST reference to MS extension support
Reid Kleckner [Thu, 5 Sep 2013 21:29:35 +0000 (21:29 +0000)]
manual: Fix RST reference to MS extension support

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

10 years agoFix regression from r190016.
Eli Friedman [Thu, 5 Sep 2013 20:13:32 +0000 (20:13 +0000)]
Fix regression from r190016.

I don't have a reduced testcase yet.

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

10 years agoDebug Info: Update testing case.
Manman Ren [Thu, 5 Sep 2013 18:51:02 +0000 (18:51 +0000)]
Debug Info: Update testing case.

DIBuilder now uses an identifier to reference DIType in base type field of
ptr_to_member (in r190081).

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

10 years agoUnbreak build with libc++, whose std::list<T> requires T to be complete.
Douglas Gregor [Thu, 5 Sep 2013 18:28:53 +0000 (18:28 +0000)]
Unbreak build with libc++, whose std::list<T> requires T to be complete.

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

10 years agoMark lambda closure classes as being implicitly-generated.
James Dennett [Thu, 5 Sep 2013 17:46:21 +0000 (17:46 +0000)]
Mark lambda closure classes as being implicitly-generated.

Summary: Closure classes for C++ lambdas are always compiler-generated.  This one-line change calls setImplicit(true) on them at creation time, such that a default RecursiveASTVisitor (or any for which shouldVisitImplicitCode returns false) will skip them.

Reviewers: rsmith, dblaikie

Reviewed By: dblaikie

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

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

10 years agoObjectiveC modern translator: fix up generated fast enumeration
Fariborz Jahanian [Thu, 5 Sep 2013 17:17:32 +0000 (17:17 +0000)]
ObjectiveC modern translator: fix up generated fast enumeration
code to work for bit 32bit and 64bit APIs.
// rdar://14913632

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

10 years agoclang-cl: Use .obj as extension for unnamed object files (PR17095)
Hans Wennborg [Thu, 5 Sep 2013 17:05:56 +0000 (17:05 +0000)]
clang-cl: Use .obj as extension for unnamed object files (PR17095)

We already use .obj as extension when the user provides a stem file
name (via /Fo), but were failing in the most basic case when the file
name is based on the input file.

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

10 years agoAdd ATTRIBUTE_UNUSED to silence unused-function warning in release
Daniel Jasper [Thu, 5 Sep 2013 16:05:56 +0000 (16:05 +0000)]
Add ATTRIBUTE_UNUSED to silence unused-function warning in release
builds.

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

10 years agoFixes PR 17106 (explicitly typed enums are formatted differently).
Manuel Klimek [Thu, 5 Sep 2013 15:34:55 +0000 (15:34 +0000)]
Fixes PR 17106 (explicitly typed enums are formatted differently).

Before:
 enum X : int { A, B, C };

After:
 enum X : int {
   A,
   B,
   C
 };

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

10 years agoHandle zero-width and double-width characters in string literals and comments.
Alexander Kornienko [Thu, 5 Sep 2013 14:08:34 +0000 (14:08 +0000)]
Handle zero-width and double-width characters in string literals and comments.

Summary:
Count column width instead of the number of code points. This also
includes correct handling of tabs inside string literals and comments (with an
exception of multiline string literals/comments, where tabs are present before
the first escaped newline).

Reviewers: djasper, klimek

Reviewed By: klimek

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

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

10 years agoFix the profile of the function (fix commit 190048)
Sylvestre Ledru [Thu, 5 Sep 2013 13:58:07 +0000 (13:58 +0000)]
Fix the profile of the function (fix commit 190048)

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

10 years agoFix bug #17104 - Target info for GNU/kFreeBSD were missing.
Sylvestre Ledru [Thu, 5 Sep 2013 13:47:07 +0000 (13:47 +0000)]
Fix bug #17104 - Target info for GNU/kFreeBSD were missing.
As a result, Clang doesn't define the pre-processor macros that are expected
on this platform.

Thanks to Robert Millan for the patch

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

10 years agoclang-format: Quickfix for braced init lists detected as lambdas.
Daniel Jasper [Thu, 5 Sep 2013 11:49:39 +0000 (11:49 +0000)]
clang-format: Quickfix for braced init lists detected as lambdas.

Before:
  constexpr char hello [] { "hello" };

After:
  constexpr char hello[]{ "hello" };

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

10 years agoAdd new methods for TargetInfo:
Stepan Dyatkovskiy [Thu, 5 Sep 2013 11:23:21 +0000 (11:23 +0000)]
Add new methods for TargetInfo:
     getRealTypeByWidth and getIntTypeByWidth
  for ASTContext names are almost same(invokes new methods from TargetInfo):
     getIntTypeForBitwidth and getRealTypeForBitwidth.

As first commit for PR16752 fix: 'mode' attribute for unusual targets doesn't work properly
Description:
Troubles could be happened due to some assumptions in handleModeAttr function (see SemaDeclAttr.cpp).
For example, it assumes that 32 bit integer is 'int', while it could be 16 bit only.
Instead of asking target: 'which type do you want to use for int32_t ?' it just hardcodes general opinion. That doesn't looks pretty correct.
Please consider the next solution:
1. In Basic/TargetInfo add getIntTypeByWidth and getRealTypeByWidth virtual methods. By default current behaviour could be implemented here.
2. Fix handleModeAttr according to new methods in TargetInfo.
This approach is implemented in the patch attached to this post.

Fixes:
1st Commit (Current): Add new methods for TargetInfo:
     getRealTypeByWidth and getIntTypeByWidth
  for ASTContext names are almost same(invokes new methods from TargetInfo):
     getIntTypeForBitwidth and getRealTypeForBitwidth

2nd Commit (Next): Fix SemaDeclAttr, handleModeAttr function.

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

10 years agoAddress post-commit review comments from r190038.
Daniel Jasper [Thu, 5 Sep 2013 10:48:50 +0000 (10:48 +0000)]
Address post-commit review comments from r190038.

Mostly additional comments :-).

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

10 years agoSupport suppressing unused arguments warnings as a core option so that
Chandler Carruth [Thu, 5 Sep 2013 10:09:03 +0000 (10:09 +0000)]
Support suppressing unused arguments warnings as a core option so that
it works in the CL flavor driver.

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

10 years agoclang-format: Fix parsing and indenting lambdas.
Daniel Jasper [Thu, 5 Sep 2013 10:04:31 +0000 (10:04 +0000)]
clang-format: Fix parsing and indenting lambdas.

Before:
  void f() {
    other(x.begin(), x.end(), //
                         [&](int, int) { return 1; });
  }

After:
  void f() {
    other(x.begin(), x.end(), //
          [&](int, int) { return 1; });
  }

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

10 years agoclang-format: Enable formatting of nested blocks.
Daniel Jasper [Thu, 5 Sep 2013 09:29:45 +0000 (09:29 +0000)]
clang-format: Enable formatting of nested blocks.

Among other things, this enables (better) formatting lambdas and
constructs like:
  MACRO({
          long_statement();
          long_statement_2();
        },
        {
          long_statement();
          long_statement_2();
        },
        { short_statement(); }, "");

This fixes llvm.org/PR15381.

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

10 years ago[analyzer] Restructure a test file
Pavel Labath [Thu, 5 Sep 2013 09:18:36 +0000 (09:18 +0000)]
[analyzer] Restructure a test file

Summary:
I've had a test failure here while experimenting and I've found that it's
impossible to find what is wrong with the previous structure of the file. So I
have grouped the expected output with the function that produces it, to make
searching for discrepancies more obvious.

Reviewers: jordan_rose

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

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

10 years agoMake error text if clang-format is not on the system PATH more helpful,
Manuel Klimek [Thu, 5 Sep 2013 08:31:48 +0000 (08:31 +0000)]
Make error text if clang-format is not on the system PATH more helpful,
as this is going to be a common mistake (installing LLVM defaults to not putting
the tools onto the PATH).

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

11 years agoFor "expected unqualified-id" errors after a double colon, and the double colon
Richard Trieu [Thu, 5 Sep 2013 02:31:33 +0000 (02:31 +0000)]
For "expected unqualified-id" errors after a double colon, and the double colon
is at the end of the line, point to the location after the double colon instead
of at the next token.  There is more context to be given this way.  In addition,
the next token can be several lines later.

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

11 years agoAdd specific warning flags for GNU ext in lexer.
Eli Friedman [Thu, 5 Sep 2013 00:02:30 +0000 (00:02 +0000)]
Add specific warning flags for GNU ext in lexer.

This patch adds the following flags covering existing warnings:

-Wgnu-zero-variadic-macro-arguments
-Wgnu-imaginary-constant
-Wgnu-binary-literal
-Wgnu-zero-line-directive

Patch by Peter Lewis.

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

11 years agoNote when a decl is used in AST files.
Eli Friedman [Thu, 5 Sep 2013 00:02:25 +0000 (00:02 +0000)]
Note when a decl is used in AST files.

When an AST file is built based on another AST file, it can use a decl from
the fist file, and therefore mark the "isUsed" bit.  We need to note this in
the AST file so that the bit is set correctly when the second AST file is
loaded.

This patch introduces the distinction between setIsUsed() and markUsed() so
that we don't call into the ASTMutationListener callback when it wouldn't
be appropriate.

Fixes PR16635.

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

11 years agoPR17103: Scoped enumerations with signed integer types have signed integer
Richard Smith [Wed, 4 Sep 2013 23:34:21 +0000 (23:34 +0000)]
PR17103: Scoped enumerations with signed integer types have signed integer
representation. Don't emit comparisons on them as 'icmp ult'!

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