From 882dea12e4bd3f81af62929d611e1b9985ca99f2 Mon Sep 17 00:00:00 2001 From: Pragmatic Software Date: Mon, 18 May 2015 20:50:11 -0700 Subject: [PATCH] Add clang++ language option Update all clang languages to use clang-3.7. --- modules/compiler_vm/languages/clang11.pm | 4 +- modules/compiler_vm/languages/clang89.pm | 4 +- modules/compiler_vm/languages/clang99.pm | 4 +- modules/compiler_vm/languages/clangpp.pm | 114 +++++++++++++++++++++++ 4 files changed, 120 insertions(+), 6 deletions(-) create mode 100755 modules/compiler_vm/languages/clangpp.pm diff --git a/modules/compiler_vm/languages/clang11.pm b/modules/compiler_vm/languages/clang11.pm index da6036e3..31ecd6f8 100755 --- a/modules/compiler_vm/languages/clang11.pm +++ b/modules/compiler_vm/languages/clang11.pm @@ -11,10 +11,10 @@ sub initialize { $self->{sourcefile} = 'prog.c'; $self->{execfile} = 'prog'; - $self->{default_options} = '-Wextra -Wall -Wno-unused -pedantic -Wfloat-equal -Wshadow -std=c11 -lm -Wfatal-errors -fsanitize=integer -fsanitize=bounds -fsanitize=undefined'; + $self->{default_options} = '-Wextra -Wall -Wno-unused -pedantic -Wfloat-equal -Wshadow -std=c11 -lm -Wfatal-errors -fsanitize=integer,undefined,address,alignment'; $self->{options_paste} = '-fcaret-diagnostics'; $self->{options_nopaste} = '-fno-caret-diagnostics'; - $self->{cmdline} = 'clang -g $sourcefile $options -o $execfile'; + $self->{cmdline} = 'clang-3.7 -ggdb -g3 $sourcefile $options -o $execfile'; $self->{prelude} = <<'END'; #define _XOPEN_SOURCE 9001 diff --git a/modules/compiler_vm/languages/clang89.pm b/modules/compiler_vm/languages/clang89.pm index d7bedd7d..a3ca7072 100755 --- a/modules/compiler_vm/languages/clang89.pm +++ b/modules/compiler_vm/languages/clang89.pm @@ -11,10 +11,10 @@ sub initialize { $self->{sourcefile} = 'prog.c'; $self->{execfile} = 'prog'; - $self->{default_options} = '-Wextra -Wall -Wno-unused -pedantic -Wfloat-equal -Wshadow -std=c89 -lm -Wfatal-errors -fsanitize=integer -fsanitize=bounds -fsanitize=undefined'; + $self->{default_options} = '-Wextra -Wall -Wno-unused -pedantic -Wfloat-equal -Wshadow -std=c89 -lm -Wfatal-errors -fsanitize=integer,undefined,alignment,address'; $self->{options_paste} = '-fcaret-diagnostics'; $self->{options_nopaste} = '-fno-caret-diagnostics'; - $self->{cmdline} = 'clang -ggdb -g3 $sourcefile $options -o $execfile'; + $self->{cmdline} = 'clang-3.7 -ggdb -g3 $sourcefile $options -o $execfile'; $self->{prelude} = <<'END'; #define _XOPEN_SOURCE 9001 diff --git a/modules/compiler_vm/languages/clang99.pm b/modules/compiler_vm/languages/clang99.pm index 1a7a9dcb..78eb62a2 100755 --- a/modules/compiler_vm/languages/clang99.pm +++ b/modules/compiler_vm/languages/clang99.pm @@ -11,10 +11,10 @@ sub initialize { $self->{sourcefile} = 'prog.c'; $self->{execfile} = 'prog'; - $self->{default_options} = '-Wextra -Wall -Wno-unused -pedantic -Wfloat-equal -Wshadow -std=c99 -lm -Wfatal-errors -fsanitize=integer -fsanitize=bounds -fsanitize=undefined'; + $self->{default_options} = '-Wextra -Wall -Wno-unused -pedantic -Wfloat-equal -Wshadow -std=c99 -lm -Wfatal-errors -fsanitize=integer,undefined,alignment,address'; $self->{options_paste} = '-fcaret-diagnostics'; $self->{options_nopaste} = '-fno-caret-diagnostics'; - $self->{cmdline} = 'clang -ggdb -g3 $sourcefile $options -o $execfile'; + $self->{cmdline} = 'clang-3.7 -ggdb -g3 $sourcefile $options -o $execfile'; $self->{prelude} = <<'END'; #define _XOPEN_SOURCE 9001 diff --git a/modules/compiler_vm/languages/clangpp.pm b/modules/compiler_vm/languages/clangpp.pm new file mode 100755 index 00000000..9e0d5bdf --- /dev/null +++ b/modules/compiler_vm/languages/clangpp.pm @@ -0,0 +1,114 @@ +#!/usr/bin/perl + +use warnings; +use strict; + +package clangpp; +use parent '_c_base'; + +sub initialize { + my ($self, %conf) = @_; + + $self->{name} = 'clang++'; + $self->{sourcefile} = 'prog.cpp'; + $self->{execfile} = 'prog'; + $self->{default_options} = '-std=c++14 -Wextra -Wall -Wno-unused -pedantic -Wfloat-equal -Wshadow -lm -Wfatal-errors -fsanitize=alignment,undefined'; + $self->{options_paste} = '-fcaret-diagnostics'; + $self->{options_nopaste} = '-fno-caret-diagnostics'; + $self->{cmdline} = 'clang++-3.7 -I/usr/include/x86_64-linux-gnu/c++/5/ -ggdb -g3 $sourcefile $options -o $execfile'; + + $self->{prelude} = <<'END'; +#if 0 +#define _XOPEN_SOURCE 9001 +#define __USE_XOPEN + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +using namespace std; +#endif + +#include + +END +} + +1;