88 lines · c
1// UNSUPPORTED: system-windows2// A basic clang -cc1 command-line.3 4// RUN: %clang -### %s --target=avr --sysroot=%S/Inputs/basic_avr_tree -resource-dir=%S/Inputs/resource_dir 2>&1 | FileCheck --check-prefix=CHECK1 %s5// CHECK1: "-cc1" "-triple" "avr"6// CHECK1-SAME: "-resource-dir" "[[RESOURCE:[^"]+]]"7// CHECK1-SAME: "-isysroot" "[[SYSROOT:[^"]+/basic_avr_tree]]"8// CHECK1-SAME: "-internal-isystem"9// CHECK1-SAME: {{^}} "[[SYSROOT]]/usr/lib/gcc/avr/5.4.0/../../../avr/include"10// CHECK1-NOT: "-L11// CHECK1: avr-ld"12// CHECK1-SAME: "-o" "a.out"13// CHECK1-SAME: {{^}} "--gc-sections"14 15// RUN: %clang -### %s --target=avr --sysroot=%S/Inputs/basic_avr_tree_2/opt/local -S 2>&1 | FileCheck --check-prefix=CHECK2 %s16// CHECK2: "-cc1" "-triple" "avr"17// CHECK2-SAME: "-isysroot" "[[SYSROOT:[^"]+/basic_avr_tree_2/opt/local]]"18// CHECK2-SAME: "-internal-isystem"19// CHECK2-SAME: {{^}} "[[SYSROOT]]/lib/gcc/avr/10.3.0/../../../../avr/include"20 21// RUN: %clang -### %s --target=avr --sysroot=%S/Inputs/basic_avr_tree_2 -S 2>&1 | FileCheck --check-prefix=CHECK3 %s22// CHECK3: "-cc1" "-triple" "avr"23// CHECK3-SAME: "-isysroot" "[[SYSROOT:[^"]+/basic_avr_tree_2]]"24// CHECK3-SAME: "-internal-isystem"25// CHECK3-SAME: {{^}} "[[SYSROOT]]/usr/avr/include"26 27// RUN: %clang -### %s --target=avr 2>&1 | FileCheck -check-prefix=CC1 %s28// CC1: "-cc1" "-triple" "avr" {{.*}} "-fno-use-init-array" "-fno-use-cxa-atexit"29 30// RUN: %clang -### %s --target=avr -fuse-init-array -fuse-cxa-atexit 2>&1 | FileCheck -check-prefix=CHECK4 %s31// CHECK4: "-cc1" "-triple" "avr"32// CHECK4-NOT: "-fno-use-init-array"33// CHECK4-NOT: "-fno-use-cxa-atexit"34 35// RUN: %clang -### %s --target=avr --sysroot=%S/Inputs/basic_avr_tree 2>&1 -nostdinc | FileCheck --check-prefix=NOSTDINC %s36// RUN: %clang -### %s --target=avr --sysroot=%S/Inputs/basic_avr_tree 2>&1 -nostdlibinc | FileCheck --check-prefix=NOSTDINC %s37// NOSTDINC-NOT: "-internal-isystem" {{".*avr/include"}}38 39// RUN: %clang -### --target=avr --sysroot=%S/Inputs/basic_avr_tree -mmcu=atmega328 %s 2>&1 | FileCheck --check-prefix=NOWARN %s40// RUN: %clang -### --target=avr --sysroot=%S/Inputs/basic_avr_tree -mmcu=atmega328 -S %s 2>&1 | FileCheck --check-prefix=NOWARN %s41// RUN: %clang -### --target=avr --sysroot=%S/Inputs/ -mmcu=atmega328 -S %s 2>&1 | FileCheck --check-prefix=NOWARN %s42// NOWARN-NOT: warning:43 44// RUN: %clang -### --target=avr --sysroot=%S/Inputs/basic_avr_tree -S %s 2>&1 | FileCheck --check-prefixes=NOMCU,LINKA %s45// RUN: %clang -### --target=avr --sysroot=%S/Inputs/ -S %s 2>&1 | FileCheck --check-prefixes=NOMCU,LINKA %s46// RUN: %clang -### --target=avr --sysroot=%S/Inputs/basic_avr_tree %s 2>&1 | FileCheck --check-prefixes=NOMCU,LINKB %s47// NOMCU: warning: no target microcontroller specified, please pass -mmcu=<mcu name>48// LINKB: warning: standard library not linked and so no interrupt vector table or compiler runtime routines will be linked49// LINKB: warning: support for passing the data section address to the linker for microcontroller '' is not implemented50// NOMCU-NOT: warning: {{.*}} avr-gcc51// NOMCU-NOT: warning: {{.*}} avr-libc52// LINKA-NOT: warning: {{.*}} interrupt vector53// LINKA-NOT: warning: {{.*}} data section address54 55// RUN: %clang -### --target=avr --sysroot=%S/Inputs/ -mmcu=atmega328 %s 2>&1 | FileCheck --check-prefixes=NOGCC %s56// NOGCC: warning: standard library not linked and so no interrupt vector table or compiler runtime routines will be linked57// NOGCC-NOT: warning: {{.*}} microcontroller58// NOGCC-NOT: warning: {{.*}} avr-libc59// NOGCC-NOT: warning: {{.*}} data section address60 61// RUN: not %clang -### --target=avr --sysroot=%S/Inputs/basic_avr_tree -mmcu=atmega328 %s -fuse-ld=avrld 2>&1 | FileCheck --check-prefix=NOLD %s62// NOLD: error: invalid linker63 64// RUN: %clang -### --target=avr --sysroot=%S/Inputs/basic_avr_tree -mmcu=atmega328 %s -fuse-ld=%S/Inputs/basic_avr_tree/usr/bin/ld.lld 2>&1 | FileCheck --check-prefix=LLD %s65// LLD: {{".*lld"}}66// LLD-NOT: "avr-ld"67// LLD-NOT: "-mavr5"68 69// RUN: %clang -### --target=avr --sysroot=%S/Inputs/basic_avr_tree -mmcu=atmega328 %s -T avr.lds 2>&1 | FileCheck --check-prefix=LDS0 %s70// LDS0: "-T" "avr.lds" "--relax" "-mavr5"71 72// RUN: %clang -### --target=avr --sysroot=%S/Inputs/basic_avr_tree -mmcu=atmega328 %s -fuse-ld=%S/Inputs/basic_avr_tree/usr/bin/ld.lld -T avr.lds 2>&1 | FileCheck --check-prefix=LDS1 %s73// LDS1: "-T" "avr.lds"74// LDS1-NOT: "-mavr5"75 76// RUN: %clang %s -### --target=avr -mmcu=atmega328 --sysroot=%S/Inputs/basic_avr_tree/ -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir --rtlib=libgcc 2>&1 | FileCheck --check-prefix=LIBGCC %s77// LIBGCC: "-lgcc"78// LIBGCC-NOT: libclang_rt79 80// RUN: %clang %s -### --target=avr -mmcu=atmega328 --sysroot=%S/Inputs/basic_avr_tree/ -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir --rtlib=compiler-rt 2>&1 | FileCheck --check-prefix=COMRT %s81// COMRT: avr/libclang_rt.builtins.a82// COMRT-NOT: "-lgcc"83 84// RUN: %clang %s -### --target=avr --sysroot=%S/Inputs/basic_avr_tree/ -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir --rtlib=compiler-rt 2>&1 | FileCheck --check-prefix=NOMCU %s85// RUN: %clang %s -### --target=avr --sysroot=%S/Inputs/basic_avr_tree/ -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir --rtlib=libgcc 2>&1 | FileCheck --check-prefix=NOMCU %s86// NOMCU-NOT: libclang_rt87// NOMCU-NOT: "-lgcc"88