aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation
diff options
authorChristopher Li <sparse@chrisli.org>2009-07-10 11:19:22 -0700
committerChristopher Li <sparse@chrisli.org>2009-07-19 02:17:32 +0000
commit8cf99394ee4c08a3ede8ef52cd0b3ce73afcf076 (patch)
tree9b280f75bda93d150735509c86f98a68439b9837 /validation
parent37f041aba632b7ffc46eb779df07804d9d7d547a (diff)
downloadsparse-dev-8cf99394ee4c08a3ede8ef52cd0b3ce73afcf076.tar.gz
move extern inline function to file scope
In gcc extern inline function has special meaning. The inline function will never emit stand alone copy of the function. It also allow multiple implementations cross different file. That effectively makes the extern inline has file scope. Signed-off-by: Christopher Li <sparse@chrisli.org>
Diffstat (limited to 'validation')
-rw-r--r--validation/extern-inline.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/validation/extern-inline.c b/validation/extern-inline.c
new file mode 100644
index 00000000..4f12ac06
--- /dev/null
+++ b/validation/extern-inline.c
@@ -0,0 +1,23 @@
+extern __inline__ int f(int);
+
+extern __inline__ int
+f(int x)
+{
+ return x;
+}
+
+extern int g(int);
+
+extern __inline__ int
+g(int x)
+{
+ return x;
+}
+
+
+/*
+ * check-name: extern inline function
+ * check-command: sparse $file $file
+ * check-description: Extern inline function never emits stand alone copy
+ * of the function. It allows multiple such definitions in different file.
+ */