aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
-rw-r--r--Makefile2
-rw-r--r--check.c1
-rw-r--r--parse.c2
3 files changed, 4 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index b9b6211f..3cfe1d4d 100644
--- a/Makefile
+++ b/Makefile
@@ -22,7 +22,7 @@ all: $(PROGRAMS)
# "The better to keep you on your toes, my dear".
#
install: check
- install -C check $(PREFIX)/bin/sparse
+ if test $< -nt $(PREFIX)/bin/sparse ; then install -sv $< $(PREFIX)/bin/sparse ; fi
test-lexing: test-lexing.o $(LIB_FILE)
gcc $(LDFLAGS) -o $@ $< $(LIBS)
diff --git a/check.c b/check.c
index 4bddfb0d..593ac0bf 100644
--- a/check.c
+++ b/check.c
@@ -44,6 +44,7 @@ int main(int argc, char **argv)
add_pre_buffer("extern void *__builtin_return_address(int);\n");
add_pre_buffer("extern void *__builtin_memset(void *, int, unsigned long);\n");
add_pre_buffer("extern void __builtin_trap(void);\n");
+ add_pre_buffer("extern int __builtin_ffs(unsigned long);\n"); /* XXX(cw) check this */
args = argv;
for (;;) {
diff --git a/parse.c b/parse.c
index 8b85c3ef..e553cc38 100644
--- a/parse.c
+++ b/parse.c
@@ -304,6 +304,8 @@ static const char * handle_attribute(struct ctype *ctype, struct ident *attribut
return NULL;
if (match_string_ident(attribute, "always_inline"))
return NULL;
+ if (match_string_ident(attribute, "syscall_linkage"))
+ return NULL;
return "unknown attribute";
}