llvm-project/clang/test/Sema
Rafael Espindola 3c9d9479b0 Process attributes in the order they appear in the source code. This make clang
match gcc behavior for two conflicting visibilities in the same decl. It also
makes handling of dllimport/dllexport more natural.

As a bonus we now warn on the dllimport in

void __attribute__((dllimport)) foo13();
void __attribute__((dllexport)) foo13();

as does gcc.

llvm-svn: 156343
2012-05-07 23:58:18 +00:00
..
Inputs Add a test for r156092. 2012-05-03 23:38:51 +00:00
128bitint.c Add support for full-width 128-bit integer literals. 2012-05-03 22:49:43 +00:00
2007-10-01-BuildArrayRef.c Migrate 2007-10-01-BuildArrayRef.c from llvm/test/FrontendC. 2011-07-23 02:16:25 +00:00
2009-03-09-WeakDeclarations-1.c Migrate over 2009-04-22-UnknownSize.c, 2009-07-17-VoidParameter.c, 2011-07-26 00:47:54 +00:00
2009-04-22-UnknownSize.c Migrate over 2009-04-22-UnknownSize.c, 2009-07-17-VoidParameter.c, 2011-07-26 00:47:54 +00:00
2009-07-17-VoidParameter.c Migrate over 2009-04-22-UnknownSize.c, 2009-07-17-VoidParameter.c, 2011-07-26 00:47:54 +00:00
2010-05-31-palignr.c Migrate over 2009-04-22-UnknownSize.c, 2009-07-17-VoidParameter.c, 2011-07-26 00:47:54 +00:00
MicrosoftCompatibility.c Turned on support for __declspecs: noreturn, noinline, nothrow and naked in MS compatibility mode. 2012-02-23 22:46:33 +00:00
MicrosoftExtensions.c with -Wdeprecated, include a note to its deprecated declaration 2012-04-23 20:30:52 +00:00
PR2727.c
PR2728.c
PR2919-builtin-types-compat-strips-crv.c
PR2923.c
PR2963-enum-constant.c Pedantic diagnostic correction: in C++, we have integral constant expressions, 2012-01-15 03:51:30 +00:00
__try.c Treat the Microsoft/Borland keyword "__except" as a context-sensitive 2011-10-21 03:57:52 +00:00
address-constant.c
address_spaces.c Forbid address-space-qualified function types, per TR 18037 2011-07-27 20:30:05 +00:00
align-arm-apcs.c After further discussion it has been determined that alignof should report 2011-07-26 07:03:04 +00:00
align-x86-64.c
align-x86.c Report the natural alignment of unsigned long long, not the preferred alignment. 2012-03-21 20:20:47 +00:00
alignas.c Add support for alignment-specifiers in C1X and C++11, remove 2011-09-29 18:04:28 +00:00
altivec-init.c
annotate.c Currently __builtin_annotation() only annotates an i32. 2012-04-28 17:39:16 +00:00
anonymous-struct-union-c11.c Don't warn about anonymous struct/union in C11. 2012-02-03 15:47:04 +00:00
anonymous-struct-union.c Fix a bug in semantic analysis involving anonymous structs and flexible arrays. 2012-02-07 05:00:47 +00:00
arg-duplicate.c
arg-scope-c99.c
arg-scope.c
arm-layout.c
arm-neon-types.c Unpluralize -Wfoo-conversions warnings for consistency. 2012-03-15 05:09:31 +00:00
array-bounds-ptr-arith.c PR11594: Don't blindly build a UnaryOperator UO_Minus on an expression which 2011-12-16 19:31:14 +00:00
array-constraint.c
array-declared-as-incorrect-type.c
array-init.c Enable warn_impcast_literal_float_to_integer by default. 2012-04-05 00:16:44 +00:00
array-size-64.c
array-size.c
asm.c Add support for AVX registers to clang inline asm. Add a small testcase 2011-12-02 02:12:16 +00:00
assign-null.c
assign.c
ast-print.c
atomic-ops.c Implement the missing pieces needed to support libstdc++4.7's <atomic>: 2012-04-13 00:45:38 +00:00
atomic-type.c Make sure to try instantiating a templated type which is used in an _Atomic 2012-02-11 18:03:45 +00:00
attr-alias.c
attr-aligned.c
attr-args.c
attr-availability-ios.c with -Wdeprecated, include a note to its deprecated declaration 2012-04-23 20:30:52 +00:00
attr-availability-macosx.c with -Wdeprecated, include a note to its deprecated declaration 2012-04-23 20:30:52 +00:00
attr-availability.c Process attributes in the order they appear in the source code. This make clang 2012-05-07 23:58:18 +00:00
attr-cleanup.c
attr-decl-after-definition.c
attr-declspec-ignored.c Remove some extraneous carriage returns from these files. One of the 2011-12-20 01:45:15 +00:00
attr-deprecated-message.c with -Wdeprecated, include a note to its deprecated declaration 2012-04-23 20:30:52 +00:00
attr-deprecated.c Remove a non-gcc-compatible extension that would apply attributes on declarations without a declarator to structs. Add a warning for ignored attributes. Patch by Michael Han. 2011-12-17 00:36:09 +00:00
attr-format.c
attr-format_arg.c
attr-malloc.c
attr-mode.c
attr-naked.c Don't complain about missing return statements for naked 2011-07-11 15:24:01 +00:00
attr-nodebug.c
attr-noinline.c
attr-noreturn.c
attr-regparm.c
attr-returns-twice.c Add returns_twice to functions that are known to return twice. This implements 2011-10-12 19:51:18 +00:00
attr-section.c
attr-sentinel.c PR11002: Make sure we emit sentinel warnings with a valid source location. (Ideally, we want to use the location returned by getLocForEndOfToken, but that is not always successful.) 2011-09-27 23:46:37 +00:00
attr-unavailable-message.c Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
attr-unknown.c
attr-unused.c
attr-used.c
attr-visibility.c Process attributes in the order they appear in the source code. This make clang 2012-05-07 23:58:18 +00:00
attr-weak.c Issue warning if weak_import attribute is added to an already 2011-06-22 22:08:50 +00:00
bitfield-layout.c
bitfield-promote.c
bitfield.c Silliness with commas, as reported at http://blog.regehr.org/archives/558 . As it turns out, this is my fault for not noticing this was an issue when I was looking at this a long time ago. :( 2011-07-13 02:05:57 +00:00
block-args.c
block-call.c
block-explicit-noreturn-type.c If block literal return type is not specified, return type of the block is 2011-12-03 17:47:53 +00:00
block-labels.c
block-literal.c
block-misc.c Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
block-printf-attribute-1.c Add "multiple format attributes" support on block. 2012-01-25 00:55:11 +00:00
block-return-1.c
block-return-2.c
block-return-3.c
block-return.c fixes the diagnostic issued in // rdar://11069896 2012-03-21 20:28:39 +00:00
block-sentinel-attribute.c Minor refactoring of sentinel warning on blocks. Add a test for this warning. 2012-01-06 01:23:10 +00:00
block-storageclass.c
builtin-object-size.c
builtin-prefetch.c
builtin-stackaddress.c
builtin-unary-fp.c
builtin_objc_msgSend.c
builtins-arm.c
builtins-decl.c
builtins.c Add -Wstring-plus-int, which warns on "str" + int and int + "str". 2012-03-02 22:01:22 +00:00
c11-typedef-redef.c Extend test-case as requested by Eli 2012-01-11 22:43:46 +00:00
c89-2.c
c89.c Implement C90 pedantic warning for duplicate declaration specifiers which are duplicated via a typedef. Patch by Tim Northover. 2012-04-05 22:47:34 +00:00
callingconv.c
carbon.c
cast-incomplete.c
cast-to-union.c
cast.c
check-increment.c
compare.c Turn the mixed-sign-comparison diagnostic into a runtime behavior 2012-05-01 01:53:49 +00:00
complex-imag.c Fix wrong-code bug: __imag on a scalar lvalue should produce a zero rvalue, 2012-02-18 20:53:32 +00:00
complex-init-list.c Implement the missing pieces of Evaluate for _Complex types. With that complete, remove some code from CGExprConstant which is no longer necessary. While I'm here, a couple minor tweaks to _Complex-in-C++. (Specifically, make _Complex types literal types, and don't warn for _Complex int.) 2012-01-10 04:58:17 +00:00
complex-int.c
complex-promotion.c
compound-literal.c Change the diagnostics which said 'accepted as an extension' to instead say 2011-12-29 21:57:33 +00:00
conditional-expr.c Properly implement the C rules for composite types for qualified pointers in conditionals. Patch by Tim Northover. 2012-04-05 22:30:04 +00:00
conditional.c
const-eval-64.c Make constant evaluation for pointer comparisons work correctly for some uncommon cases. <rdar://problem/10962435>. 2012-04-16 04:30:08 +00:00
const-eval.c Per Richard's comments on r154794, add the checks necessary to handle constant-folding relational comparisons safely in case the user is using -fwrapv or equivalent. 2012-04-16 19:23:57 +00:00
const-ptr-int-ptr-cast.c
constant-builtins-2.c
constant-builtins.c
constant-conversion.c Change the check for constant-conversion with width-1 bitfields so it doesn't suppress quite as many cases. Based off a testcase in the gcc testsuite. 2012-02-02 00:40:20 +00:00
constructor-attribute.c
conversion-64-32.c Warn on 64-to-32 for source value of x bits where 64 >= x > 32. 2012-04-12 22:40:54 +00:00
conversion.c Only emit implicit constant conversion truncation warnings in reachable code. Apparently this is what GCC does, and some code depends on this. Fixes <rdar://problem/10321089>. 2011-10-22 02:37:33 +00:00
crash-invalid-array.c Bring over a test from llvm/test/FrontendC that is for Sema and not CodeGen. 2011-07-22 07:26:22 +00:00
darwin-align-cast.c
decl-in-prototype.c Reapply r151638 and r151641. 2012-02-29 10:24:19 +00:00
decl-invalid.c
decl-type-merging.c
declspec.c
default.c Generalize -Wempty-body: warn when statement body is empty (closes: PR11329) 2012-02-14 22:14:32 +00:00
default1.c
deref.c
designated-initializers.c
dllimport-dllexport.c Process attributes in the order they appear in the source code. This make clang 2012-05-07 23:58:18 +00:00
enum-packed.c
enum.c Fix a couple of nasty bugs involving negative enum constants. <rdar://problem/10760113>. 2012-02-07 04:34:38 +00:00
expr-address-of.c
expr-comma-c99.c
expr-comma.c
exprs.c Add fixit notes for -Wconstant-logical-operand. 2011-08-15 17:50:06 +00:00
ext_vector_casts.c Fix Sema::CheckVectorOperands so that it doesn't try to insert a cast expression into the LHS of a compound assignment. Fixes compound assignment of various "compatible" vector types, including NEON-vector and gcc-vector types. 2011-06-23 18:10:35 +00:00
ext_vector_comparisons.c
ext_vector_components.c
extern-redecl.c When redeclaring a local extern in the same scope, make sure that we 2011-06-29 21:22:02 +00:00
flexible-array-init.c Refactor and fix checking for initialization of flexible array members. The old version had the checks scattered across the code, missed some checks, and had a couple nasty bugs in existing checks. 2011-08-23 22:24:57 +00:00
floating-point-compare.c
fn-ptr-as-fn-prototype.c Reapply r151638 and r151641. 2012-02-29 10:24:19 +00:00
for.c
format-string-percentm.c
format-strings-c90.c -Wformat-non-iso: warn about positional arguments (pr12017) 2012-03-09 10:10:54 +00:00
format-strings-fixit-ssize_t.c Break out ssize_t test from Sema/format-strings-fixit.c 2011-10-19 07:55:50 +00:00
format-strings-fixit.c -Wformat-non-iso: warn about positional arguments (pr12017) 2012-03-09 10:10:54 +00:00
format-strings-int-typedefs.c Tighten format string diagnostic and make it a bit clearer (and a bit closer to GCC's). 2012-01-20 21:52:58 +00:00
format-strings-no-fixit.c Fix for PR9751 to change the behavior of -Wformat warnings. If the format 2011-10-28 00:41:25 +00:00
format-strings-non-iso.c -Wformat-non-iso: warn about positional arguments (pr12017) 2012-03-09 10:10:54 +00:00
format-strings-scanf.c Format string analysis: give 'q' its own enumerator. 2012-02-16 16:34:54 +00:00
format-strings-size_t.c Tighten format string diagnostic and make it a bit clearer (and a bit closer to GCC's). 2012-01-20 21:52:58 +00:00
format-strings.c Add a predefine __WINT_UNSIGNED__, similar to __WCHAR_UNSIGNED__, and test them both for ARM and X86. 2012-05-04 11:23:40 +00:00
fp16-sema.c Missed tests for half FP support 2011-10-14 23:32:50 +00:00
fpack-struct.c Unify Options.td and CC1Options.td, in a first step towards unifying the serialization logic in Frontend and Driver. 2012-05-01 14:57:16 +00:00
freemain.c
function-ptr.c
function-redecl.c
function.c Make sure to consider non-DeclContext scopes properly when finding 2012-01-13 23:06:53 +00:00
generic-selection.c
gnu89.c Warn about non-int main() results in GNU C mode instead of erroring. 2012-02-14 19:50:52 +00:00
heinous-extensions-off.c
heinous-extensions-on.c
i-c-e.c In C++11 mode, when an integral constant expression is desired and we have a 2012-02-04 09:53:13 +00:00
illegal-types.c
implicit-builtin-decl.c Remove the "C" in "implicitly declaring C library function" diagnostic 2012-01-27 23:21:02 +00:00
implicit-builtin-freestanding.c
implicit-builtin-redecl.c Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
implicit-cast.c
implicit-decl.c Convert SemaDecl.cpp to pass callback objects to CorrectTypo. 2012-01-18 21:41:41 +00:00
implicit-def.c
implicit-int.c Change __extension__ to disable only diagnostics controlled by -pedantic. 2011-10-12 19:55:31 +00:00
incompatible-sign.c
incomplete-call.c
incomplete-decl.c Factor out (some of) the checking for invalid forms of pointer 2011-06-27 08:02:19 +00:00
indirect-goto.c
init-struct-qualified.c
init-vector.c
init.c Switching to using dyn_cast_or_null, and fixing line endings in the test case. 2012-02-09 22:16:56 +00:00
initialize-noreturn.c c: assignment/init of a function pointer whose function(s) 2011-10-05 00:05:34 +00:00
inline-redef.c
inline.c
int-arith-convert.c
invalid-decl.c
invalid-init-diag.c
invalid-struct-init.c Fix parsing of type-specifier-seq's. Types are syntactically allowed to be 2012-03-12 07:56:15 +00:00
knr-def-call.c Only warn in -Wliteral-conversion if the conversion loses information 2011-10-14 15:36:25 +00:00
knr-variadic-def.c
many-logical-ops.c [Sema] Introduce a data recursive evaluator specific to binary operators. 2012-03-15 18:07:16 +00:00
many-parameters.c Use a sidetable in ASTContext for ParmVarDecls whose index exceeds the 8 bits reserved for that value in VarDecl. Fixes PR 10538. 2011-10-06 05:00:56 +00:00
member-reference.c
memset-invalid.c
merge-decls.c
missing-field-initializers.c
ms_class_layout.cpp Test verified. 2012-05-01 19:57:05 +00:00
neon-vector-types.c
nested-redef.c
no-format-y2k-turnsoff-format.c Tighten format string diagnostic and make it a bit clearer (and a bit closer to GCC's). 2012-01-20 21:52:58 +00:00
nonnull.c Handle nonnull attribute with optional argument number on 2011-06-27 21:12:03 +00:00
offsetof.c Perform an lvalue-to-rvalue conversion on an array index in a __builtin_offsetof expression. 2011-10-17 05:48:07 +00:00
overloadable-complex.c Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
overloadable.c Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
overloaded-func-transparent-union.c
parentheses.c Silence ?: precendence warning when parenthesis are present. 2011-09-12 12:07:30 +00:00
parentheses.cpp Silence ?: precendence warning when parenthesis are present. 2011-09-12 12:07:30 +00:00
pointer-addition.c Cleanup a fixme by using a specific diagnostic for subscripting 2011-06-27 16:32:27 +00:00
pointer-conversion.c
pointer-subtract-compat.c Factor out (some of) the checking for invalid forms of pointer 2011-06-27 08:02:19 +00:00
pragma-align-mac68k-unsupported.c
pragma-align-mac68k.c
pragma-align-packed.c
pragma-arc-cf-code-audited.c Add explicit attributes to mark functions as having had their 2011-09-30 05:12:12 +00:00
pragma-ms_struct.c Fixes a bug in calculation of field offsets of ms_struct 2011-12-12 21:16:36 +00:00
pragma-pack-2.c Remove the part of test/Sema/pragma-pack-2.c that has irregular "#pragma pack"s. 2012-03-10 03:20:52 +00:00
pragma-pack-3.c
pragma-pack-4.c
pragma-pack-5.c Fix bitfield handling for record layout with #pragma pack. <rdar://problem/10494810> and PR9560. 2011-12-02 02:38:48 +00:00
pragma-pack-and-options-align.c
pragma-pack-apple.c Add an option to emulate the strange Apple gcc behavior of #pragma pack. 2011-11-02 01:53:16 +00:00
pragma-pack.c
pragma-unused.c
predef.c
predefined-function.c
private-extern.c
rdr6094103-unordered-compare-promote.c
recover-goto.c
redefinition.c
return-noreturn.c Improve the diagnostic text for -Wmissing-noreturn to include the name 2011-08-31 09:01:53 +00:00
return-silent.c
return.c Change the binary operator data recursive evaluator to not stop at the first 2012-03-21 23:30:30 +00:00
scope-check.c
self-comparison.c
sentinel-attribute.c
shift.c Sema: show shift result in hexadecimal 2011-06-15 00:54:52 +00:00
short-enums.c
sign-conversion.c Two more test cases which have been long uncommitted. 2011-06-24 23:30:52 +00:00
statements.c Generalize -Wempty-body: warn when statement body is empty (closes: PR11329) 2012-02-14 22:14:32 +00:00
static-array.c Add sema checks for calls to functions taking static array parameters 2011-10-16 21:17:32 +00:00
static-assert.c
static-init.c Attempt to fix test on 32-bit hosts. 2011-12-21 01:57:31 +00:00
stdcall-fastcall.c
struct-cast.c
struct-compat.c
struct-decl.c
struct-packed-align.c
surpress-deprecated.c Fix tests that weren't actually verifying anything. 2012-04-15 22:09:44 +00:00
switch.c For enums with no tag name, display its location in 2012-03-21 20:56:29 +00:00
tentative-decls.c
text-diag.c
thread-specifier.c Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
transparent-union-pointer.c
transparent-union.c
type-spec-struct-union.c
typecheck-binop.c Factor out (some of) the checking for invalid forms of pointer 2011-06-27 08:02:19 +00:00
typedef-prototype.c
typedef-redef.c
typedef-retain.c
typedef-variable-type.c
typeof-use-deprecated.c
types.c For PR11916: Add support for g++'s __int128 keyword. Unlike __int128_t, this is 2012-04-04 06:24:32 +00:00
ucn-cstring.c Improve diagnostics for UCNs referring to control characters and members of the 2012-03-09 22:27:51 +00:00
uninit-variables-vectors.c
uninit-variables.c Fix a note without a SourceLocation. 2012-05-03 01:09:59 +00:00
unnamed-bitfield-init.c
unused-expr-system-header.c Suppress -Wunused-value within macros from system headers. 2012-01-06 22:43:58 +00:00
unused-expr.c Treating the unused equality comparisons as something other than part of 2011-08-17 09:34:37 +00:00
usual-float.c
va_arg_x86_32.c
va_arg_x86_64.c
var-redecl.c
varargs-x86-64.c
varargs.c Add diagnostic for constructs like "va_arg(l, float)" which have undefined behavior. PR10201. 2011-07-11 21:45:59 +00:00
variadic-block.c
variadic-incomplete-arg-type.c Change diagnostic test for my last patch. 2012-03-02 17:05:03 +00:00
vector-assign.c Unpluralize -Wfoo-conversions warnings for consistency. 2012-03-15 05:09:31 +00:00
vector-cast.c Unpluralize -Wfoo-conversions warnings for consistency. 2012-03-15 05:09:31 +00:00
vector-init.c
vector-ops.c Use raw_ostream in TypePrinter and eliminate uses of temporary std::strings. 2012-05-05 04:20:37 +00:00
vfprintf-invalid-redecl.c
vfprintf-valid-redecl.c
vla-2.c Make clang's AST model sizeof and typeof with potentially-evaluated operands correctly, similar to what we already do with typeid. 2012-01-21 01:01:51 +00:00
vla.c Fix a minor regression from my potentially-evaluated expression changes. 2012-02-06 23:29:57 +00:00
void_arg.c
warn-cast-align.c Remove a non-gcc-compatible extension that would apply attributes on declarations without a declarator to structs. Add a warning for ignored attributes. Patch by Michael Han. 2011-12-17 00:36:09 +00:00
warn-char-subscripts.c
warn-freestanding-complex.c
warn-gnu-designators.c
warn-missing-braces.c
warn-missing-prototypes.c
warn-shadow.c
warn-sizeof-arrayarg.c Warn on "void f(int a[10]) { sizeof(a); }" 2011-06-15 02:47:03 +00:00
warn-strlcpycat-size.c Rename -Wstrl-incorrect-size to -Wstrlcpy-strlcat-size. This warning really is just specific to strlcpy and strlcat. 2011-08-19 14:35:32 +00:00
warn-strncat-size.c Do not show macro expansion in strncat warnings, which can be defined as 2012-02-03 01:27:37 +00:00
warn-unreachable.c Reword/rename -Wswitch-unreachable-default. 2012-01-24 05:34:08 +00:00
warn-unused-function.c
warn-unused-label.c
warn-unused-parameters.c Undo patch for // rdar://10735698 2012-03-06 18:41:35 +00:00
warn-unused-value.c
warn-unused-variables.c
warn-write-strings.c
wchar.c
weak-import-on-enum.c Do not warn when weak-import attribute is applied to enum 2011-10-26 23:59:12 +00:00
x86-attr-force-align-arg-pointer.c
x86-builtin-palignr.c Fix vector macros to correctly check argument types. <rdar://problem/10261670> 2011-11-05 06:08:06 +00:00