]> granicus.if.org Git - clang/log
clang
11 years agoDon't suggest to insert [[clang::fallthrough]] before empty cases. Fix for multiple...
Alexander Kornienko [Fri, 25 Jan 2013 15:49:34 +0000 (15:49 +0000)]
Don't suggest to insert [[clang::fallthrough]] before empty cases. Fix for multiple case labels.

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

11 years agoFix some alignment and line break decisions.
Daniel Jasper [Fri, 25 Jan 2013 15:43:32 +0000 (15:43 +0000)]
Fix some alignment and line break decisions.

This combines two small changes:
1) Put a penalty on breaking after "<"
2) Only produce a hanging indent when parameters are separated by
commas.

Before:
aaaaaaaaaaaaaaaaaaaaaaaa<
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
aaaaaa(new Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
               aaaaaaaaaaaaaaaaaaaaaaaaaaaaa));

After:
aaaaaaaaaaaaaaaaaaaaaaaa<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>(
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
aaaaaa(new Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaa));

This changes one ObjC test, but AFAICT this is not according to any
style guide (neither before nor after). We probably should be aligning
on the ":" there according to:
http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml?showone=Method_Invocations#Method_Invocations

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

11 years agoLexer.cpp: Fix a warning with ptrdiff_t on i686. [-Wsign-compare]
NAKAMURA Takumi [Fri, 25 Jan 2013 14:57:21 +0000 (14:57 +0000)]
Lexer.cpp: Fix a warning with ptrdiff_t on i686. [-Wsign-compare]

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

11 years agoclang/test/PCH/modified-header-error.c: Disable it again. It had been problematic...
NAKAMURA Takumi [Fri, 25 Jan 2013 11:07:42 +0000 (11:07 +0000)]
clang/test/PCH/modified-header-error.c: Disable it again. It had been problematic on win32 for while.

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

11 years agoAllow breaking after "::" if absolutely necessary.
Daniel Jasper [Fri, 25 Jan 2013 10:57:27 +0000 (10:57 +0000)]
Allow breaking after "::" if absolutely necessary.

Otherwise, really long nested name specifiers can easily lead to a
violation of the column limit.

Not sure about the rules for indentation in those cases, so input is
appreciated (see tests.).

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

11 years agoConvertUTF.h: Suppress a warning with ptrdiff_t on i686. [-Wsign-compare]
NAKAMURA Takumi [Fri, 25 Jan 2013 10:01:35 +0000 (10:01 +0000)]
ConvertUTF.h: Suppress a warning with ptrdiff_t on i686. [-Wsign-compare]

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

11 years agoclang/test/Driver/output-file-cleanup.c: Add arm and powerpc to XFAIL.
NAKAMURA Takumi [Fri, 25 Jan 2013 09:43:17 +0000 (09:43 +0000)]
clang/test/Driver/output-file-cleanup.c: Add arm and powerpc to XFAIL.

..."ppc" was not recognized here.

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

11 years agoAdd missing InGroup for this warning.
Nick Lewycky [Fri, 25 Jan 2013 07:31:12 +0000 (07:31 +0000)]
Add missing InGroup for this warning.

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

11 years agoclang/test/Driver/output-file-cleanup.c: Mark it as XFAIL:*-mingw32, ppc, for now.
NAKAMURA Takumi [Fri, 25 Jan 2013 06:56:45 +0000 (06:56 +0000)]
clang/test/Driver/output-file-cleanup.c: Mark it as XFAIL:*-mingw32, ppc, for now.

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

11 years agoclang/test/Index/crash-recovery-*.c: Drop 'REQUIRES:shell". "test !" is available...
NAKAMURA Takumi [Fri, 25 Jan 2013 06:31:02 +0000 (06:31 +0000)]
clang/test/Index/crash-recovery-*.c: Drop 'REQUIRES:shell". "test !" is available on Lit win32 since r173421.

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

11 years agoclang/test: Drop "REQUIRES:shell" in three tests. They can run on win32.
NAKAMURA Takumi [Fri, 25 Jan 2013 06:02:11 +0000 (06:02 +0000)]
clang/test: Drop "REQUIRES:shell" in three tests. They can run on win32.

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

11 years agoclang/test/CodeGenCXX/debug-info-static-member.cpp: Appease targetting msvc to add...
NAKAMURA Takumi [Fri, 25 Jan 2013 05:58:53 +0000 (05:58 +0000)]
clang/test/CodeGenCXX/debug-info-static-member.cpp: Appease targetting msvc to add explicit -target x86_64-unknown-unknown.

with -target i686-win32, you will see;

debug-info-static-member.cpp:11:22: error: in-class initializer for static data member of type 'const float' requires 'constexpr' specifier [-Wstatic-float-init]
  const static float const_b = 3.14;
                     ^         ~~~~
  constexpr

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

11 years agoCreate clang/test/Driver/lit.local.cfg.
NAKAMURA Takumi [Fri, 25 Jan 2013 05:09:37 +0000 (05:09 +0000)]
Create clang/test/Driver/lit.local.cfg.

These files had been ignored.

  - clang_f_opts.h
  - debug-comp-dir.S
  - debug-main-file.S

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

11 years agoSync 'in class initialization of static const double' extension up with GCC,
Richard Smith [Fri, 25 Jan 2013 04:22:16 +0000 (04:22 +0000)]
Sync 'in class initialization of static const double' extension up with GCC,
and split it out of -Wgnu into its own warning flag.

 * In C++11, this is now a hard error (GCC has no extension here in C++11 mode).
   The error can be disabled with -Wno-static-float-init, and has a fixit to
   add 'constexpr'.

 * In C++98, this is still an ExtWarn, but is now controlled by
   -Wstatic-float-init as well as -Wgnu.

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

11 years ago[Frontend] Remove another IsUserSpecified member variable that is now unused.
Daniel Dunbar [Fri, 25 Jan 2013 01:50:47 +0000 (01:50 +0000)]
[Frontend] Remove another IsUserSpecified member variable that is now unused.

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

11 years ago[Frontend] Drop the isUserSupplied argument to InitHeaderSearch, it is unused.
Daniel Dunbar [Fri, 25 Jan 2013 01:50:39 +0000 (01:50 +0000)]
[Frontend] Drop the isUserSupplied argument to InitHeaderSearch, it is unused.

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

11 years ago[Frontend] The -iwithprefix option belongs in the After category, according to
Daniel Dunbar [Fri, 25 Jan 2013 01:50:34 +0000 (01:50 +0000)]
[Frontend] The -iwithprefix option belongs in the After category, according to
GCC docs.
 - Found by inspection.

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

11 years ago[Lex] Remove DirectoryLookup.UserSpecified, which is unused.
Daniel Dunbar [Fri, 25 Jan 2013 01:50:28 +0000 (01:50 +0000)]
[Lex] Remove DirectoryLookup.UserSpecified, which is unused.

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

11 years agoSerialization/GlobalModuleIndex.cpp: Fixup r173405, <cstdio>
NAKAMURA Takumi [Fri, 25 Jan 2013 01:47:07 +0000 (01:47 +0000)]
Serialization/GlobalModuleIndex.cpp: Fixup r173405, <cstdio>

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

11 years agoImplement the reader of the global module index and wire it into the
Douglas Gregor [Fri, 25 Jan 2013 01:03:03 +0000 (01:03 +0000)]
Implement the reader of the global module index and wire it into the
AST reader.

The global module index tracks all of the identifiers known to a set
of module files. Lookup of those identifiers looks first in the global
module index, which returns the set of module files in which that
identifier can be found. The AST reader only needs to look into those
module files and any module files not known to the global index (e.g.,
because they were (re)built after the global index), reducing the
number of on-disk hash tables to visit. For an example source I'm
looking at, we go from 237844 total identifier lookups into on-disk
hash tables down to 126817.

Unfortunately, this does not translate into a performance advantage.
At best, it's a wash once the global module index has been built, but
that's ignore the cost of building the global module index (which
is itself fairly large). Profiles show that the global module index
code is far less efficient than it should be; optimizing it might give
enough of an advantage to justify its continued inclusion.

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

11 years agoRename the -cc1 option "-generate-module-index" to
Douglas Gregor [Fri, 25 Jan 2013 00:45:27 +0000 (00:45 +0000)]
Rename the -cc1 option "-generate-module-index" to
"-fmodules-global-index" and expand its behavior to include both the
use and generation of the global module index.

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

11 years agoTrack the number of lookups and hits into the on-disk hash tables for
Douglas Gregor [Fri, 25 Jan 2013 00:38:33 +0000 (00:38 +0000)]
Track the number of lookups and hits into the on-disk hash tables for
identifiers within the AST file reader.

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

11 years agoClarify comment: "diagnose" is better than "warn" when emitting an error.
Jordan Rose [Fri, 25 Jan 2013 00:20:28 +0000 (00:20 +0000)]
Clarify comment: "diagnose" is better than "warn" when emitting an error.

Thanks, Dmitri.

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

11 years agoClean up: since we have FunctionDecl::IsInline, make it store the right value
Richard Smith [Fri, 25 Jan 2013 00:08:28 +0000 (00:08 +0000)]
Clean up: since we have FunctionDecl::IsInline, make it store the right value
for template instantiations, and use it to simplify the implementation of
FunctionDecl::isInlined().

This incidentally changes the result of isInlined on a declared-but-not-defined
non-inline member function from true to false. This is sort of a bug fix, but
currently isInlined is only called on function definitions, so it has no visible
effects.

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

11 years agoFileCheck'ize test
Dmitri Gribenko [Fri, 25 Jan 2013 00:06:54 +0000 (00:06 +0000)]
FileCheck'ize test

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

11 years agoFileCheck'ize test
Dmitri Gribenko [Thu, 24 Jan 2013 23:44:04 +0000 (23:44 +0000)]
FileCheck'ize test

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

11 years ago[analyzer] Fixup for r173385 and r173386 - initialize the members.
Anna Zaks [Thu, 24 Jan 2013 23:40:17 +0000 (23:40 +0000)]
[analyzer] Fixup for r173385 and r173386 - initialize the members.

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

11 years agoFileCheck'ize test
Dmitri Gribenko [Thu, 24 Jan 2013 23:34:51 +0000 (23:34 +0000)]
FileCheck'ize test

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

11 years agoFileCheck'ize test
Dmitri Gribenko [Thu, 24 Jan 2013 23:29:37 +0000 (23:29 +0000)]
FileCheck'ize test

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

11 years agoFixes text of diagnostics in integer overflow patch.
Fariborz Jahanian [Thu, 24 Jan 2013 23:24:32 +0000 (23:24 +0000)]
Fixes text of diagnostics in integer overflow patch.

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

11 years agoFileCheck'ize test/SemaCXX/qualified-names-print.cpp and merge it to other
Dmitri Gribenko [Thu, 24 Jan 2013 23:21:11 +0000 (23:21 +0000)]
FileCheck'ize test/SemaCXX/qualified-names-print.cpp and merge it to other
-ast-print tests

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

11 years ago[analyzer] Add "-analyzer-config mode=[deep|shallow] ".
Anna Zaks [Thu, 24 Jan 2013 23:15:34 +0000 (23:15 +0000)]
[analyzer] Add "-analyzer-config mode=[deep|shallow] ".

The idea is to introduce a higher level "user mode" option for
different use scenarios. For example, if one wants to run the analyzer
for a small project each time the code is built, they would use
the "shallow" mode.

The user mode option will influence the default settings for the
lower-level analyzer options. For now, this just influences the ipa
modes, but we plan to find more optimal settings for them.

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

11 years ago[analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa".
Anna Zaks [Thu, 24 Jan 2013 23:15:30 +0000 (23:15 +0000)]
[analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa".

The idea is to eventually place all analyzer options under
"analyzer-config". In addition, this lays the ground for introduction of
a high-level analyzer mode option, which will influence the
default setting for IPAMode.

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

11 years ago[analyzer] refactor: access IPAMode through the accessor.
Anna Zaks [Thu, 24 Jan 2013 23:15:25 +0000 (23:15 +0000)]
[analyzer] refactor: access IPAMode through the accessor.

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

11 years agoscan-build: Add a --keep-empty option for better testing.
Jordan Rose [Thu, 24 Jan 2013 23:07:59 +0000 (23:07 +0000)]
scan-build: Add a --keep-empty option for better testing.

SATestBuild expects to compare output directories for each invocation of
scan-build that it runs, but scan-build clears out empty directories by
default. We were coincidentally not getting that behavior until r173294.

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

11 years agoFileCheck-ify some debug info scope related tests.
David Blaikie [Thu, 24 Jan 2013 22:47:48 +0000 (22:47 +0000)]
FileCheck-ify some debug info scope related tests.

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

11 years agoremoved duplicated comment.
Fariborz Jahanian [Thu, 24 Jan 2013 22:26:55 +0000 (22:26 +0000)]
removed duplicated comment.

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

11 years agoPatch to check for integer overflow. It has been
Fariborz Jahanian [Thu, 24 Jan 2013 22:11:45 +0000 (22:11 +0000)]
Patch to check for integer overflow. It has been
commented on and approved by Richard Smith.

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

11 years agoMove 'convertUTF8Sequence' helper into the C++ section of the header file.
Jordan Rose [Thu, 24 Jan 2013 21:48:50 +0000 (21:48 +0000)]
Move 'convertUTF8Sequence' helper into the C++ section of the header file.

It's annotated as "inline", but ConvertUTF.c should still be able to compile
as C89.

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

11 years ago[mips] Do not emit i32 padding if target ABI is O32. This was causing backend
Akira Hatanaka [Thu, 24 Jan 2013 21:47:33 +0000 (21:47 +0000)]
[mips] Do not emit i32 padding if target ABI is O32. This was causing backend
to pass floating point arguments to be passed in integer registers.

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

11 years agoTest fix-it ranges for Unicode characters.
Jordan Rose [Thu, 24 Jan 2013 21:19:51 +0000 (21:19 +0000)]
Test fix-it ranges for Unicode characters.

Also, remove stray -fdiagnostics-parseable-fixits from ucn-pp-identifier.

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

11 years agoAdd a fixit for \U1234 -> \u1234.
Jordan Rose [Thu, 24 Jan 2013 20:50:52 +0000 (20:50 +0000)]
Add a fixit for \U1234 -> \u1234.

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

11 years agoAs an extension, treat Unicode whitespace characters as whitespace.
Jordan Rose [Thu, 24 Jan 2013 20:50:50 +0000 (20:50 +0000)]
As an extension, treat Unicode whitespace characters as whitespace.

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

11 years agoHandle universal character names and Unicode characters outside of literals.
Jordan Rose [Thu, 24 Jan 2013 20:50:46 +0000 (20:50 +0000)]
Handle universal character names and Unicode characters outside of literals.

This is a missing piece for C99 conformance.

This patch handles UCNs by adding a '\\' case to LexTokenInternal and
LexIdentifier -- if we see a backslash, we tentatively try to read in a UCN.
If the UCN is not syntactically well-formed, we fall back to the old
treatment: a backslash followed by an identifier beginning with 'u' (or 'U').

Because the spelling of an identifier with UCNs still has the UCN in it, we
need to convert that to UTF-8 in Preprocessor::LookUpIdentifierInfo.

Of course, valid code that does *not* use UCNs will see only a very minimal
performance hit (checks after each identifier for non-ASCII characters,
checks when converting raw_identifiers to identifiers that they do not
contain UCNs, and checks when getting the spelling of an identifier that it
does not contain a UCN).

This patch also adds basic support for actual UTF-8 in the source. This is
treated almost exactly the same as UCNs except that we consider stray
Unicode characters to be mistakes and offer a fixit to remove them.

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

11 years agoUnify diagnostics for \x, \u, and \U without any following hex digits.
Jordan Rose [Thu, 24 Jan 2013 20:50:13 +0000 (20:50 +0000)]
Unify diagnostics for \x, \u, and \U without any following hex digits.

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

11 years agoFail these tests in a way that doesn't cause unexpected successes, per Daniel's
Chad Rosier [Thu, 24 Jan 2013 20:46:39 +0000 (20:46 +0000)]
Fail these tests in a way that doesn't cause unexpected successes, per Daniel's
suggestion.

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

11 years agoTemporarily XFAIL this test; the compiler will segfault if the target-specific
Chad Rosier [Thu, 24 Jan 2013 20:33:35 +0000 (20:33 +0000)]
Temporarily XFAIL this test; the compiler will segfault if the target-specific
parser is not included in the compiler. Thanks to Renato for discovering the
underlying issue.

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

11 years ago[ms-inline asm] Add an error when trying to compile MS-style inline assembly
Chad Rosier [Thu, 24 Jan 2013 20:24:34 +0000 (20:24 +0000)]
[ms-inline asm] Add an error when trying to compile MS-style inline assembly
for an unsupported architecture.
rdar://13063988

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

11 years ago[driver] Associate a JobAction with each result file. This enables the driver
Chad Rosier [Thu, 24 Jan 2013 19:14:47 +0000 (19:14 +0000)]
[driver] Associate a JobAction with each result file.  This enables the driver
to delete result files for only those commands that fail.
Part of rdar://12984531

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

11 years agoPR14922: when printing an attribute, use the real syntax of the attribute (GNU, C...
Michael Han [Thu, 24 Jan 2013 16:46:58 +0000 (16:46 +0000)]
PR14922: when printing an attribute, use the real syntax of the attribute (GNU, C++11, MS Declspec) instead of hardcoded GNU syntax.

Introduce a spelling index to Attr class, which is an index into the attribute spelling list of an attribute defined in Attr.td.
This index will determine the actual spelling used by an attribute, as it incorporates both the syntax and naming of the attribute.
When constructing an attribute AST node, the spelling index is computed based on attribute kind, scope (if it's a C++11 attribute), and
name, then passed to Attr that will use the index to print itself.

Thanks to Richard Smith for the idea and review.

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

11 years agoFix a non-conformant OpenCL test case.
Joey Gouly [Thu, 24 Jan 2013 15:24:54 +0000 (15:24 +0000)]
Fix a non-conformant OpenCL test case.
Program scope variables must be declared in the constant address space
and are required to be initialized.

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

11 years agoProperly remove this test file, that I copied over to test/SemaOpenCL in r173352.
Joey Gouly [Thu, 24 Jan 2013 15:19:51 +0000 (15:19 +0000)]
Properly remove this test file, that I copied over to test/SemaOpenCL in r173352.

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

11 years agoFix an OpenCL test case that was OpenCL conformant.
Joey Gouly [Thu, 24 Jan 2013 15:14:22 +0000 (15:14 +0000)]
Fix an OpenCL test case that was OpenCL conformant.
It had program scope variables that were not in the constant address space,
make them to be function scope variables instead.
Also move the test to the SemaOpenCL directory.

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

11 years agoclang/GlobalModuleIndex: Don't open the same file twice. Use raw_fd_ostream(fd, ...
NAKAMURA Takumi [Thu, 24 Jan 2013 08:20:11 +0000 (08:20 +0000)]
clang/GlobalModuleIndex: Don't open the same file twice. Use raw_fd_ostream(fd, ...) instead.

FIXME: PathV2::unique_file() is assumed to open the file with binary mode on win32.

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

11 years agoclang/test/Modules/global_index.m: XFAILing on win32 when investigating for now.
NAKAMURA Takumi [Thu, 24 Jan 2013 07:04:14 +0000 (07:04 +0000)]
clang/test/Modules/global_index.m: XFAILing on win32 when investigating for now.

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

11 years agoGive warn_redecl_library_builtin a flag name: -Wincompatible-library-redeclaration.
Nick Lewycky [Thu, 24 Jan 2013 03:43:15 +0000 (03:43 +0000)]
Give warn_redecl_library_builtin a flag name: -Wincompatible-library-redeclaration.

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

11 years agoStart checking nonnull (as well as format and argument_with_type_tag) on
Nick Lewycky [Thu, 24 Jan 2013 02:03:08 +0000 (02:03 +0000)]
Start checking nonnull (as well as format and argument_with_type_tag) on
overloaded binary operators.

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

11 years agoFix some wonky formatting, remove spurious emacs major mode marker. No
Nick Lewycky [Thu, 24 Jan 2013 01:12:16 +0000 (01:12 +0000)]
Fix some wonky formatting, remove spurious emacs major mode marker. No
functionality change!

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

11 years agoMicro cleanup: use an array of const char, rather than an array of char, as the
Richard Smith [Wed, 23 Jan 2013 23:38:20 +0000 (23:38 +0000)]
Micro cleanup: use an array of const char, rather than an array of char, as the
type of the string literal implicitly used for a raw user-defined literal call.
No test; this has no semantic impact.

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

11 years agoDon't check lines beginning with '#', since they could contain a path with the unexpe...
Bill Wendling [Wed, 23 Jan 2013 23:07:21 +0000 (23:07 +0000)]
Don't check lines beginning with '#', since they could contain a path with the unexpected word in them.

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

11 years agoDon't check lines beginning with '#', since they could contain a path with the unexpe...
Bill Wendling [Wed, 23 Jan 2013 23:06:28 +0000 (23:06 +0000)]
Don't check lines beginning with '#', since they could contain a path with the unexpected word in them.

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

11 years agoThe diagnostic is now a warning instead of an error. Also don't check lines beginning...
Bill Wendling [Wed, 23 Jan 2013 23:04:29 +0000 (23:04 +0000)]
The diagnostic is now a warning instead of an error. Also don't check lines beginning with '#', since they could contain a path with the unexpected word in them.

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

11 years agoFix for case-sensitive file systems. Ugh
Douglas Gregor [Wed, 23 Jan 2013 22:45:24 +0000 (22:45 +0000)]
Fix for case-sensitive file systems. Ugh

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

11 years agoImplement the writer side of the global module index.
Douglas Gregor [Wed, 23 Jan 2013 22:38:11 +0000 (22:38 +0000)]
Implement the writer side of the global module index.

The global module index is a "global" index for all of the module
files within a particular subdirectory in the module cache, which
keeps track of all of the "interesting" identifiers and selectors
known in each of the module files. One can perform a fast lookup in
the index to determine which module files will have more information
about entities with a particular name/selector. This information can
help eliminate redundant lookups into module files (a serious
performance problem) and help with creating auto-import/auto-include
Fix-Its.

The global module index is created or updated at the end of a
translation unit that has triggered a (re)build of a module by
scraping all of the .pcm files out of the module cache subdirectory,
so it catches everything. As with module rebuilds, we use the file
system's atomicity to synchronize.

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

11 years agoAdd a test case for 'analyzer_noreturn' on category methods.
Ted Kremenek [Wed, 23 Jan 2013 21:29:13 +0000 (21:29 +0000)]
Add a test case for 'analyzer_noreturn' on category methods.

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

11 years agoAlways process an index.html file if we have HTML output. Patch by Justin Bogner.
Ted Kremenek [Wed, 23 Jan 2013 21:22:14 +0000 (21:22 +0000)]
Always process an index.html file if we have HTML output.  Patch by Justin Bogner.

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

11 years agoAdd missing null check. Not sure why my tests passed before.
Ted Kremenek [Wed, 23 Jan 2013 21:12:49 +0000 (21:12 +0000)]
Add missing null check.  Not sure why my tests passed before.

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

11 years agoHonor attribute 'analyzer_noreturn' on Objective-C methods.
Ted Kremenek [Wed, 23 Jan 2013 21:00:27 +0000 (21:00 +0000)]
Honor attribute 'analyzer_noreturn' on Objective-C methods.

This isn't likely a full solution, but it catches the common cases
and can be refined over time.

Fixes <rdar://problem/11634353>.

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

11 years agoAdd extra indent for nested calls inside if's.
Daniel Jasper [Wed, 23 Jan 2013 20:41:06 +0000 (20:41 +0000)]
Add extra indent for nested calls inside if's.

Before:
if (aaaaaaaaaa(
    aaaaaaaaaa)) {}

After:
if (aaaaaaaaaa(
        aaaaaaaaaa)) {}

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

11 years agoImplement -Wvla correctly
Dmitri Gribenko [Wed, 23 Jan 2013 20:02:51 +0000 (20:02 +0000)]
Implement -Wvla correctly

GCC implements -Wvla as "warn on every VLA" (this is useful to find every VLA,
for example, if they are forbidden by coding guidelines).  Currently Clang
implements -Wvla as "warn on VLA when it is an extension".

The attached patch makes our behavior match GCC.  The existing vla extwarn is
moved under -Wvla-extension and is still included into -Wgnu.

This fixes PR5953.

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

11 years agoFactor the trait for lookup into the on-based hash table of
Douglas Gregor [Wed, 23 Jan 2013 18:53:14 +0000 (18:53 +0000)]
Factor the trait for lookup into the on-based hash table of
identifiers into two parts: the part that involves dealing with the
key (which can be re-used) and the ASTReader-specific part that
creates the IdentifierInfos. While I'm at it, StringRef'ify this code,
which was using pair<const char*, unsigned>. No functionality change.

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

11 years agodocs: clear up ambiguity
Sean Silva [Wed, 23 Jan 2013 18:28:48 +0000 (18:28 +0000)]
docs: clear up ambiguity

Anybody using clang is a "developer".

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

11 years ago[PCH] Temporarily disable the "ambiguous macro" warning that is currently bogus with...
Argyrios Kyrtzidis [Wed, 23 Jan 2013 18:21:56 +0000 (18:21 +0000)]
[PCH] Temporarily disable the "ambiguous macro" warning that is currently bogus with a PCH
that redefined a macro without undef'ing it first.

Proper reconstruction of the macro info history from modules will properly fix this in subsequent commits.

rdar://13016031

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

11 years agoDocumentation: add a note that -cc1 options are not guaranteed to be stable
Dmitri Gribenko [Wed, 23 Jan 2013 18:02:28 +0000 (18:02 +0000)]
Documentation: add a note that -cc1 options are not guaranteed to be stable

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

11 years agolibclang: change return type of getCursorDecl() to 'const Decl *'
Dmitri Gribenko [Wed, 23 Jan 2013 17:25:27 +0000 (17:25 +0000)]
libclang: change return type of getCursorDecl() to 'const Decl *'

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

11 years agoUse 'const Decl *' throughout code completion in Sema
Dmitri Gribenko [Wed, 23 Jan 2013 17:21:11 +0000 (17:21 +0000)]
Use 'const Decl *' throughout code completion in Sema

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

11 years agoAdd constness for NestedNameSpecifier::Create parameter
Dmitri Gribenko [Wed, 23 Jan 2013 17:06:56 +0000 (17:06 +0000)]
Add constness for NestedNameSpecifier::Create parameter

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

11 years agoDon't try to align builder-type continuations on assignments.
Daniel Jasper [Wed, 23 Jan 2013 16:58:21 +0000 (16:58 +0000)]
Don't try to align builder-type continuations on assignments.

Before:
int aaaa = aaaaa().aaaaa() // force break
           .aaaaa();
After:
int aaaa = aaaaa().aaaaa() // force break
    .aaaaa();

The other indent is just wrong and confusing.

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

11 years agoConstify some getters in RedeclarableTemplateDecl
Dmitri Gribenko [Wed, 23 Jan 2013 16:52:57 +0000 (16:52 +0000)]
Constify some getters in RedeclarableTemplateDecl

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

11 years agoRemove uneeded casts
Dmitri Gribenko [Wed, 23 Jan 2013 15:56:07 +0000 (15:56 +0000)]
Remove uneeded casts

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

11 years agoDon't try to do a hanging ident after assignments.
Daniel Jasper [Wed, 23 Jan 2013 15:55:19 +0000 (15:55 +0000)]
Don't try to do a hanging ident after assignments.

Before:
bool aaaa = aaaaaaaaaaa(
                aaaaaaaaaaaaaaaaa);

After:
bool aaaa = aaaaaaaaaaa(
    aaaaaaaaaaaaaaaaa);

The other indentation was a nice attempt but doesn't work in many cases.
Not sure what the right long term solution is as the "After: " is still
not nice. We either need to figure out what to do in the cases where it
"doesn't work" or come up with a third solution, e.g. falling back to:

bool aaaa =
    aaaaaaaaaaa(
        aaaaaaaaaaaaaaaaa);

which should always work and nicely highlight the structure.

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

11 years agoFix handling of macro definitions.
Manuel Klimek [Wed, 23 Jan 2013 14:37:36 +0000 (14:37 +0000)]
Fix handling of macro definitions.

Now correctly formats:
 #define A (1)

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

11 years agoFixes layouting regression and invalid-read.
Manuel Klimek [Wed, 23 Jan 2013 14:08:21 +0000 (14:08 +0000)]
Fixes layouting regression and invalid-read.

Layouting would prevent breaking before + in
a[b + c] = d;
Regression detected by code review.

Also fixes an invalid-read found by the valgrind bot.

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

11 years agoFix the formatting of pointer/reference types in range-based for loops.
Daniel Jasper [Wed, 23 Jan 2013 12:58:14 +0000 (12:58 +0000)]
Fix the formatting of pointer/reference types in range-based for loops.

Before: for (int & a : Values) {}
After:  for (int &a : Values) {}

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

11 years agoRemoving the penalty for breaking after "=".
Daniel Jasper [Wed, 23 Jan 2013 12:27:43 +0000 (12:27 +0000)]
Removing the penalty for breaking after "=".

Having seen more cases, this actually was not a good thing to do in the
first place. We can still improve on what we do now, but breaking after
the "=" is good in many cases.

Before:
aaaaaaaaaaaaa = aa->aaaaaaaaaaaaaaaaaaaa(
                    aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaa));

After:
aaaaaaaaaaaaa =
    aa->aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaa));

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

11 years agoFix another regression for pointer types.
Daniel Jasper [Wed, 23 Jan 2013 12:10:53 +0000 (12:10 +0000)]
Fix another regression for pointer types.

Before: if (int * a = &b) ...
After:  if (int *a = &b) ...

Also changed all the existing tests to test the expressions in question
both in a declaration and in an expression context.

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

11 years agoAdd a new LangOpt NativeHalfType. This option allows for native half/fp16
Joey Gouly [Wed, 23 Jan 2013 11:56:20 +0000 (11:56 +0000)]
Add a new LangOpt NativeHalfType. This option allows for native half/fp16
operations (as opposed to storage only half/fp16).

Also add some semantic checks for OpenCL half types.

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

11 years agoFix regression in formatting pointer types.
Daniel Jasper [Wed, 23 Jan 2013 11:15:14 +0000 (11:15 +0000)]
Fix regression in formatting pointer types.

We will need a more principled solution, but we should not leave this
unfixed until we come up with one.

Before: void f() { int * a; }
After:  void f() { int *a; }

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

11 years agoFixes incorrect handling of the declaration context stack.
Manuel Klimek [Wed, 23 Jan 2013 11:03:04 +0000 (11:03 +0000)]
Fixes incorrect handling of the declaration context stack.

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

11 years agoFix segfaults in the formatter.
Manuel Klimek [Wed, 23 Jan 2013 10:09:28 +0000 (10:09 +0000)]
Fix segfaults in the formatter.

Also: expletive deleted.

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

11 years agoAdd option to allow putting all parameters onto the next line.
Daniel Jasper [Wed, 23 Jan 2013 10:08:28 +0000 (10:08 +0000)]
Add option to allow putting all parameters onto the next line.

This only affects styles where BinPackParameters is false.

With AllowAllParametersOnNextLine:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

Without it:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaa,
                                         aaaaaaaaaa,
                                         aaaaaaaaaa,
                                         aaaaaaaaaaa,
                                         aaaaaaaaaaa);

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

11 years agoAllow us to better guess the context of an unwrapped line.
Manuel Klimek [Wed, 23 Jan 2013 09:32:48 +0000 (09:32 +0000)]
Allow us to better guess the context of an unwrapped line.

This gives us the ability to guess better defaults for whether a *
between identifiers is a pointer dereference or binary operator.

Now correctly formats:
void f(a *b);
void f() { f(a * b); }

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

11 years agoExplicitly cast away the const-ness instead of doing it implicitly.
Bill Wendling [Wed, 23 Jan 2013 08:58:23 +0000 (08:58 +0000)]
Explicitly cast away the const-ness instead of doing it implicitly.

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

11 years agoExplicitly cast away the const-ness instead of doing it implicitly.
Bill Wendling [Wed, 23 Jan 2013 08:25:41 +0000 (08:25 +0000)]
Explicitly cast away the const-ness instead of doing it implicitly.

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

11 years agoRemove the last of uses that use the Attribute object as a collection of attributes.
Bill Wendling [Wed, 23 Jan 2013 06:15:10 +0000 (06:15 +0000)]
Remove the last of uses that use the Attribute object as a collection of attributes.

Collections of attributes are handled via the AttributeSet class now. This
finally frees us up to make significant changes to how attributes are structured.

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

11 years agoMake __attribute__((nonnull)) use the general expression evaluator to search for
Nick Lewycky [Wed, 23 Jan 2013 05:08:29 +0000 (05:08 +0000)]
Make __attribute__((nonnull)) use the general expression evaluator to search for
nulls instead of limiting itself to the language-defined "null pointer
constant".

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

11 years agoclang/test/Driver/output-file-is-dir.c: This requires shell due to 'cd'.
NAKAMURA Takumi [Wed, 23 Jan 2013 01:25:23 +0000 (01:25 +0000)]
clang/test/Driver/output-file-is-dir.c: This requires shell due to 'cd'.

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

11 years ago[Driver] Don't remove non-regular files that were outputs.
Daniel Dunbar [Wed, 23 Jan 2013 01:08:23 +0000 (01:08 +0000)]
[Driver] Don't remove non-regular files that were outputs.

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

11 years agoDocumentation cleanup: fixing documentation for FrontendAction.
James Dennett [Wed, 23 Jan 2013 00:45:44 +0000 (00:45 +0000)]
Documentation cleanup: fixing documentation for FrontendAction.
* Fix a typo, s/BeginSourceAction/BeginSourceFile/, so that the documentation
  for FrontendAction::BeginSourceFileAction links correctly to BeginSourceFile;
* Add some basic \file documentation for FrontendAction.h;
* More use of "\brief" instead of repeating the name of the entity being
  documented;
* Stop using Doxygen-style "///" comments in FrontendAction.cpp, as they were
  polluting the documentation for BeginSourceFile;
* Drop incorrect "\see" markup that broke Doxygen's formatting;
* Other minor documentation fixes.

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

11 years agoUse the AttributeSet when adding multiple attributes and an Attribute::AttrKind
Bill Wendling [Wed, 23 Jan 2013 00:21:06 +0000 (00:21 +0000)]
Use the AttributeSet when adding multiple attributes and an Attribute::AttrKind
when adding a single attribute to the function.

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